2012-03-19 61 views
-2

可能重复:
How can i get values from json and display them in javascript如何检索在JavaScript从JSON对象值

我有一个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; 
    }; 

请告诉我如何从JavaScript中我的JSON字符串的每个值。例如CustomerFirstName

感谢, 纳拉亚南

+1

你知道,简单地格式化JSON对象然后使用'code'标记会容易得多。 – bezmax 2012-03-19 09:09:50

+5

如果您有充分的理由,您已经提出了** 27个**以前的问题,并且您已经使用该网站**八个月**,您现在应该正确地设置代码和标记的格式。不这样做只是不尊重社区。 Ask a Question页面上有各种关于如何格式化信息的信息。 – 2012-03-19 09:10:57

+0

对不起,格式化代码的延迟响应 – 2012-03-19 09:14:01

回答

1

第一解析JSON字符串:

var msgs = JSON.parse(json); 

由于JSON字符串是简单的辞典/关联数组,你可以通过做这样的事情可以在javascript中的值:

var value = msgs["key"]; 

就你而言,它看起来像是嵌套在多个字典中,所以可能类似于:

var customerName = msgs["SOAP-ENV:Body"]["@attributes"]["bill"]["customerDetil"]["customerFirstName"]; 
+0

感谢所有,但这不是在我的case.I工作将更新我的代码进一步信息我在做什么 – 2012-03-19 09:23:10

+0

任何人有任何解决方案呢? – 2012-03-20 03:36:25

3

好了,你要么有一个JSON字符串一个Javascript 对象。没有像“JSON对象”这样的东西 - JSON是用于编码Javascript对象的字符串符号。

如果你有一个JSON字符串,你需要把它变成一个Javascript对象 - 在许多例子中搜索SO。

如果您有JavaScript对象,则可以通过点符号或数组表示法来访问属性。例如。

var obj = { 'foo' : 'bar', 'foo2' : { 'foo3' : 'bar2' }}; 

obj.foo; // 'bar'; 
obj['foo']; // 'bar'; 
obj.foo2['foo3']; // 'bar2';