如何使用javascript访问嵌套的JSON对象值

如何使用javascript访问嵌套的JSON对象值,javascript,json,Javascript,Json,我在将json响应转换为所需格式时面临问题。 请求: 下面是我得到的答复 答复: {"return": { "response": [{"$": 1234}], "responseMessage": [{"$": "Success ABC"}], "responseCode": [{"$": "CITY,India"}] } } 请注意“$”符号,它在获取响应时给出了问题。 下面是预期的响应,还需要相应地获取response、responseMessage和respon

我在将json响应转换为所需格式时面临问题。 请求:

下面是我得到的答复 答复:

{"return": 
 {
   "response": [{"$": 1234}],
   "responseMessage": [{"$": "Success ABC"}],
   "responseCode": [{"$": "CITY,India"}]
 }
}
请注意“$”符号,它在获取响应时给出了问题。 下面是预期的响应,还需要相应地获取response、responseMessage和responseCode值

{"return": 
 {
   "response": 1234,
   "responseMessage": "Success ABC",
   "responseCode": "CITY,India"
 }
}
感谢您提前的快速回复

var obj={"return": 
 {
   "response": [{"$": 1234}],
   "responseMessage": [{"$": "Success ABC"}],
   "responseCode": [{"$": "CITY,India"}]
 }
};

obj.return.response[0].['$'];
obj.return.responseMessage[0].['$'];
obj.return.responseCode[0].['$'];

试试这个解决方案:

你可以用两种方法来尝试

方式1:(首选)

let str=`{“return”:
{
“响应”:[{“$”:1234}],
“responseMessage”:[{“$”:“Success ABC”}],
“响应代码”:[{“$”:“印度城市”}]
}
}`;
让js_object=JSON.parse(str);//将json字符串解析为javascript对象
让js_object_return=js_object.return;
设格式化的_obj={};
设所需的_obj={};
key(js_Object_return).forEach(function(key){
格式化的_obj[key]=js_object_返回[key][0][“$”];
});
期望的对象['return']=格式化的对象;

日志(所需的对象返回响应)
您可以使用
括号符号
访问JSON中的值

var str='{“return”:{“response”:[{“$”:1234}],“responseMessage”:[{“$”:“Success ABC”}],“responseCode”:[{“$”:“CITY,India”}}];
var obj=JSON.parse(str);
console.log(obj.return.response[0]['$']);
console.log(obj.return.responseMessage[0]['$');
console.log(obj.return.responseCode[0]['$'])

。作为控制台包装{max height:100%!important;top:0;}
请正确格式化代码-这现在不可读。您想要什么?请您慢慢解释一下好吗?很难理解,当我获取响应时,json对象包含“$”,我无法使用obj.result.response作为“1234”获取值。响应格式并不完美,但它是有效的,您可以访问如下属性:
response.return[keyName][0]['$']
response
已解析的对象和
keyName
要访问的属性。也尝试了此操作,但失败的原因是相同的错误类型错误:无法从未定义(JScript#102)读取属性“$”com.collaxa.cube.engine.rhino.JSContextFactory.doTopCall#109 org.mozilla.javascript.ScriptRuntime.doTopCall#3091 com.collaxa.cube.engine.rhino.JS.exec#279我有一些小改动,现在您可以试试。这会出现编译时错误-“在.operator之后缺少名称”-语法错误感谢大家的支持,我对代码做了一些其他的修改,上面建议的代码片段起了作用
obj.return[“response”][0][“$”]
var obj={"return": 
 {
   "response": [{"$": 1234}],
   "responseMessage": [{"$": "Success ABC"}],
   "responseCode": [{"$": "CITY,India"}]
 }
};

obj.return.response[0].['$'];
obj.return.responseMessage[0].['$'];
obj.return.responseCode[0].['$'];