JSON 개체 이름에서 문자열 이름을 가져 오는 데 문제가 있음을 확인했습니다. 서버의 JSON 응답에서 이런 종류의 구문을 분석해야합니다.
var response = {
hopaopGmailsjIpW: {
GmailsjIpW_totalEmails_count: 133,
GmailsjIpW_state: 1
},
hopaopGmail4y4yu: {
Gmail4y4yu_totalEmails_count: 156,
Gmail4y4yu_state: 1
}
}
은 아니지만 Array
내부 개체가있는 개체입니다. 내부 개체 이름을 구문 분석하고 각 개체에 추가 값을 추가해야합니다.
나는 다음과 같이 할 수 있기 를 원합니다 .
for(var i =0; i < response.length; i++){
response[i].username = parseUsernameFromString(response[i]);
response[i].service = parseServiceFromString(response[i]);
response[i].id = parseIdString(response[i]);
}
(또한 각 작업에 대한 상태)
그래서 질문은 : 그것을 만드는 가장 좋은 방법은 무엇입니까?
업데이트 이것은 내가 지금 가지고있는 것입니다.
for(var key in response){
if(stringContains(response[key], "Gmail")) { response[key].service = "Gmail";}
console.log("task name: "+ response[key].service);
}
function stringContains(originalString, searchString){
if(originalString.indexOf(searchString) > -1){
return true
}
else return false;
}
개체를 살펴 보려면 for ... in
루프 를 사용해야 합니다.
진짜 문제 는 다음과 거기에 ,
코드에서 누락이. 수정 된 작업 스 니펫을 참조하십시오.
단편
var response_Parsed = {
hopaopGmailsjIpW: {
GmailsjIpW_totalEmails_count: 133,
GmailsjIpW_state: 1,
service: 'Gmail',
username: 'hopaop',
id: 'sjIpW'
},
hopaopGmail4y4yu: {
Gmail4y4yu_totalEmails_count: 156,
Gmail4y4yu_state: 1,
service: 'Gmail',
username: 'hopaop',
id: '4y4yu'
}
};
for (id in response_Parsed) {
console.log("----");
if (id.indexOf("Gmail") > -1) {
console.log("We have Gmail: " + id);
console.log("UniqueName: " + id.replace("hopaopGmail", ""));
console.log("Username: " + response_Parsed[id].username);
console.log("Email Count: " + response_Parsed[id][id.replace("hopaop", "") + "_totalEmails_count"]);
}
else
console.log("We don't have Gmail: " + id);
}
또한 객체의 키를 통해 열거하는 올바른 방법은 Object.keys
.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다