如何在javascript中从JSON对象检索值
可能重复:如何在javascript中从JSON对象检索值,javascript,json,Javascript,Json,可能重复: 我有一个JSON字符串,它将包含SOAP消息内容。这是我的JSON字符串: { "xml":{ }, "SOAP-ENV:Envelope":{ "@attributes":"....." }, "SOAP-ENV:Body":{ "@attributes":{ "bill":{ "customerDetil":{ "customerFirstName":
我有一个JSON字符串,它将包含SOAP消息内容。这是我的JSON字符串:
{
"xml":{
},
"SOAP-ENV:Envelope":{
"@attributes":"....."
},
"SOAP-ENV:Body":{
"@attributes":{
"bill":{
"customerDetil":{
"customerFirstName":{
"#text":"Mahes"
}
}
}
}
}
}
这就是我在javascript中所做的:
var jsonText = xmlToJson(xmlhttp.responseXML);
var myjson = JSON.stringify(jsonText);
alert("JSON"+myjson);
function xmlToJson(xml) {
// Create the return object;
var obj = {};
if (xml.nodeType == 1) {
if (xml.attributes.length > 0) {
obj["@attributes"] = {};
for (var j = 0; j < xml.attributes.length; j++) {
var attribute = xml.attributes.item(j);
obj["@attributes"][attribute.nodeName] = attribute.nodeValue;
}
}
} else if (xml.nodeType == 3) {
obj = xml.nodeValue;
}
if (xml.hasChildNodes()) {
for(var i = 0; i < xml.childNodes.length; i++) {
var item = xml.childNodes.item(i);
var nodeName = item.nodeName;
if (typeof(obj[nodeName]) == "undefined") {
obj[nodeName] = xmlToJson(item);
} else {
if (typeof(obj[nodeName].length) == "undefined") {
var old = obj[nodeName];
obj[nodeName] = [];
obj[nodeName].push(old);
}
obj[nodeName].push(xmlToJson(item));
}
}
}
return obj;
};
var jsonText=xmlToJson(xmlhttp.responseXML);
var myjson=JSON.stringify(jsonText);
警报(“JSON”+myjson);
函数xmlToJson(xml){
//创建返回对象;
var obj={};
if(xml.nodeType==1){
如果(xml.attributes.length>0){
obj[“@attributes”]={};
for(var j=0;jCustomerFirstName
谢谢,
narayanan首先解析JSON字符串:
var msgs = JSON.parse(json);
由于JSON字符串只是字典/关联数组,您可以通过执行以下操作来获取javascript中的值:
var value = msgs["key"];
var customerName = msgs["SOAP-ENV:Body"]["@attributes"]["bill"]["customerDetil"]["customerFirstName"];
在您的情况下,该值似乎嵌套在多个字典中,因此可能类似于:
var value = msgs["key"];
var customerName = msgs["SOAP-ENV:Body"]["@attributes"]["bill"]["customerDetil"]["customerFirstName"];
请仔细检查一下。这可能会帮助您好吧,您要么有一个JSON字符串,要么有一个Javascript对象。没有所谓的“JSON对象”——JSON是用于编码Javascript对象的字符串符号 如果您有一个JSON字符串,则需要将其转换为Javascript对象搜索,以便查找大量示例 如果您有Javascript对象,则可以通过点表示法或数组表示法访问属性。例如
var obj = { 'foo' : 'bar', 'foo2' : { 'foo3' : 'bar2' }};
obj.foo; // 'bar';
obj['foo']; // 'bar';
obj.foo2['foo3']; // 'bar2';
你知道,简单地格式化JSON对象,然后使用
code
标记会容易得多。恕我直言,你已经问了27个问题,并且已经使用该网站8个月了,你现在真的应该正确格式化代码和标记了。不这样做是对社区的不尊重。“提问”页面上有各种关于如何设置内容格式的信息。很抱歉,在设置内容格式时响应太晚code@NarayananS:您可以使用此工具格式化和验证JSON代码:非常感谢,但这在我的情况下不起作用。我将更新我的代码以了解更多信息我正在做什么?是否有任何解决方案?