JSON 객체의 이름에서 String 이름을 가져 오는 데 문제가 있음을 확인했습니다. 서버의 JSON 응답에서이 종류의 구문을 분석해야합니다.javascript 객체의 값을 구문 분석합니다.
var response = {
hopaopGmailsjIpW: {
GmailsjIpW_totalEmails_count: 133,
GmailsjIpW_state: 1
},
hopaopGmail4y4yu: {
Gmail4y4yu_totalEmails_count: 156,
Gmail4y4yu_state: 1
}
}
내부 개체가있는 개체는 아니지만 Array
입니다. inner ojects 이름을 파싱하고 각 객체에 값을 추가해야합니다.
나는 같은 것을 할 수 수 원하는 :
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]);
}
그래서 질문은 (그리고 각 작업에 대한 상태) : 그것을 만들 수있는 가장 좋은 방법은 무엇입니까 ?
UPDATE 이 지금은 정확히 내가 무엇을 가지고 :
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;
}
첫 번째 블록이 JSON도 아니고 자바 스크립트입니다 : 위의 게시와 같은
나중에 당신이 그것을 반복 할 수있다. 그것을위한 사용자 정의 파서를 작성해야합니다 ([here] (https://en.wikipedia.org/wiki/Lexical_analysis) 읽기 시작). 응답이 실제로 JSON이되도록 서버를 수정하는 것이 좋습니다. – Quentin문제는 서버 측에서 데이터 캐시의 일부 구현에서 요청한 것이므로 서버 부분을 변경하는 것은 너무 많은 작업이며 가치가 없습니다. 또한 내 애플 리케이션에서 한 곳에서만이 상황이 있습니다. – user1935987
오른쪽, 쉼표가 누락되었습니다. 죄송합니다, – user1935987