【问题标题】:How to retrieve values from JSON object in javascript [duplicate]如何在javascript中从JSON对象中检索值[重复]
【发布时间】:2012-03-19 09:06:33
【问题描述】:

可能重复:
How can i get values from json and display them in javascript

我有一个包含 SOAP 消息内容的 JSON 字符串。这是我的 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

谢谢, 纳拉亚南

【问题讨论】:

  • 您知道,简单地格式化 JSON 对象然后使用code 标签会容易得多。
  • 恕我直言,您已经问了 27 个之前的问题,并且您已经使用该网站 八个月,您真的应该现在可以正确格式化代码和标记。不这样做只是对社区的不尊重。在“提问”页面上有各种关于如何格式化的信息。
  • 抱歉,格式化代码的响应迟了
  • @NarayananS:您可以使用此工具来格式化和验证 JSON 代码:jsonformatter.curiousconcept.com

标签: javascript json


【解决方案1】:

好吧,你要么有一个 JSON string 要么有一个 Javascript object。没有“JSON 对象”之类的东西——JSON 是一种用于编码 Javascript 对象的字符串表示法。

如果您有 JSON 字符串,则需要将其转换为 Javascript 对象 - 搜索大量示例。

如果您有一个 Javascript 对象,您可以通过点表示法或数组表示法访问属性。例如

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

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

【讨论】:

    【解决方案2】:

    先解析JSON字符串:

    var msgs = JSON.parse(json);
    

    由于 JSON 字符串只是字典/关联数组,因此您可以通过执行以下操作在 javascript 中获取值:

    var value = msgs["key"];
    

    在您的情况下,该值似乎嵌套在多个字典中,因此可能类似于:

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

    【讨论】:

    • 谢谢大家,但这不适用于我的情况。我将更新我的代码以获取更多信息
    • 有人对此有任何解决方案吗?
    【解决方案3】:

    请转至json.orgjson guide。这可能对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多