可能重复:
How can i get values from json and display them in javascript
我有一个JSON字符串,它将包含SOAP Message内容。这是我的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;
};
请告诉我如何从javascript中的JSON字符串中检索每个值。例如CustomerFirstName
。
谢谢, 纳拉亚南
答案 0 :(得分:3)
好吧,你有一个JSON 字符串或一个Javascript 对象。没有“JSON对象”这样的东西--JSON是用于编码Javascript对象的字符串表示法。
如果您有一个JSON字符串,则需要将其转换为Javascript对象 - 搜索SO以获取大量示例。
如果您有Javascript对象,则可以通过点表示法或数组表示法访问属性。 E.g。
var obj = { 'foo' : 'bar', 'foo2' : { 'foo3' : 'bar2' }};
obj.foo; // 'bar';
obj['foo']; // 'bar';
obj.foo2['foo3']; // 'bar2';
答案 1 :(得分:1)
首先解析JSON字符串:
var msgs = JSON.parse(json);
由于JSON字符串只是字典/关联数组,您可以通过执行以下操作来获取javascript中的值:
var value = msgs["key"];
在你的情况下,似乎值嵌套在多个词典中,所以可能是这样的:
var customerName = msgs["SOAP-ENV:Body"]["@attributes"]["bill"]["customerDetil"]["customerFirstName"];
答案 2 :(得分:0)
请浏览json.org和json guide。这可能会对你有所帮助