如何在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;j 请告诉我如何从javascript中的JSON字符串中检索每个值。例如
CustomerFirstName

谢谢,
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代码:非常感谢,但这在我的情况下不起作用。我将更新我的代码以了解更多信息我正在做什么?是否有任何解决方案?