【问题标题】:How to access elements of json array using javascript/jquery? [closed]如何使用 javascript/jquery 访问 json 数组的元素? [关闭]
【发布时间】:2016-12-23 07:37:15
【问题描述】:

我有一个这样的 json 数组

AlreadySaved:[  
{  
  "SNO":1,
  "SNUMBER":"827",
  "STARTDATE":"11/12/2016",
  "STARTTIME":"03:06:50 PM",
  "ITEMNAME":"KBand",
  "ITEMCODE":"KB2541",
  "ITEMSKUNAME":"Band",
  "ITEMSKUCODE":"BT102",
  "SALESRATE":100.0,
  "PURCHASERATE":5.0,
  "DOE":"~",
  "STOCKQTY":2.0,
  "PHYSICALQTY":1.0
}
]

我需要获取 PHYSICALQTY 的值并将其显示在警报中。我是 jquery/javascript 的新手,因此不胜感激。

【问题讨论】:

  • 添加您迄今为止尝试过的内容以实现您想要的并包含在您遇到困难的 OP 中。您的样本也无效
  • Parse JSON in JavaScript?的可能重复

标签: javascript jquery arrays json


【解决方案1】:

你可以像访问js中的普通对象一样通过点符号访问json。

var json = {"STOCKQTY":2.0,"PHYSICALQTY":1.0};

console.log(json.PHYSICALQTY);

如果你已经将这个 json 保存在另一个对象下你需要更深入,例如。

var response = {AlreadySaved: [{"STOCKQTY":2.0,"PHYSICALQTY":1.0}] };

console.log(response.AlreadySaved[0].PHYSICALQTY);

还请记住,在某些情况下,您可能将 json(例如来自响应)作为字符串而不是对象。

console.log(typeof someJson); //string

在这种情况下,您需要将此字符串解析为 json

var json = JSON.parse(someJsonAsString);

黑客愉快!

【讨论】:

  • 其实,如果是JSON,那只是一个字符串,根本无法像普通对象那样访问json
  • 我写道,在某些情况下,你可以得到这个未解析的字符串。所以你需要在这种情况下使用 JSON.parse
  • 不,你说你可以像对象一样访问 JSON ......除了 JSON 是一个字符串,一个对象是一个对象
  • 好的,你的观点是正确的。我同意你的看法
【解决方案2】:

您可以使用json[0].PHYSICALQTY

var json = [{
  "SNO": 1,
  "SNUMBER": "827",
  "STARTDATE": "11/12/2016",
  "STARTTIME": "03:06:50 PM",
  "ITEMNAME": "KBand",
  "ITEMCODE": "KB2541",
  "ITEMSKUNAME": "Band",
  "ITEMSKUCODE": "BT102",
  "SALESRATE": 100.0,
  "PURCHASERATE": 5.0,
  "DOE": "~",
  "STOCKQTY": 2.0,
  "PHYSICALQTY": 1.0
}];

document.getElementById('id1').innerHTML=json[0].PHYSICALQTY;
<div>
PHYSICALQTY:<label id="id1"></label>
</div>

【讨论】:

    【解决方案3】:

    你可以解析这个然后获取值。当然,如果你像字符串一样收到这个。

    var a = '[{"SNO":1,"SNUMBER":"827","STARTDATE":"11/12/2016","STARTTIME":"03:06:50 PM","ITEMNAME":"KBand","ITEMCODE":"KB2541","ITEMSKUNAME":"Band","ITEMSKUCODE":"BT102","SALESRATE":100.0,"PURCHASERATE":5.0,"DOE":"~","STOCKQTY":2.0,"PHYSICALQTY":1.0}]'
    
    var output = JSON.parse(a)
    
    console.log(output[0].PHYSICALQTY)
    

    【讨论】:

      【解决方案4】:

      您的 JSON 对象无效,您可以通过 http://jsonlint.com/ 进行检查

      一旦你将它设置为类似

      var AlreadySaved =[{"SNO":1,"SNUMBER":"827","STARTDATE":"11/12/2016","STARTTIME":"03:06:50 PM","ITEMNAME":"KBand","ITEMCODE":"KB2541","ITEMSKUNAME":"Band","ITEMSKUCODE":"BT102","SALESRATE":100.0,"PURCHASERATE":5.0,"DOE":"~","STOCKQTY":2.0,"PHYSICALQTY":1.0}] ;
      

      您可以通过AlreadySaved[0]["PHYSICALQTY"]访问它

      【讨论】:

        【解决方案5】:

        不是json对象。

        json:

        {AlreadySaved:[{"SNO":1,"SNUMBER":"827","STARTDATE":"11/12/2016","STARTTIME":"03:06:50 PM","ITEMNAME":"KBand","ITEMCODE":"KB2541","ITEMSKUNAME":"Band","ITEMSKUCODE":"BT102","SALESRATE":100.0,"PURCHASERATE":5.0,"DOE":"~","STOCKQTY":2.0,"PHYSICALQTY":1.0}]}
        

        在这种情况下,您可能会获得您的财产: alert(AlreadySaved[0].PHYSICALQTY);

        【讨论】:

        • 你所说的 Json 也无效 - 属性名称需要在 "" 中 - 所以,你的例子应该是 {"AlreadySaved":[ ...
        【解决方案6】:

        首先你必须像这样序列化你的对象;

        var json_data = JSON.parse(AlreadySaved);
        

        如果你知道json_data中的具体数据,你可以像这样用索引号调用;

        var result= json_data[0]["PHYSICALQTY"];
        

        或者你可以找到任何你想要的,你可以用foreach找到;

        for(var item in json_data) {
           alert(item["PHYSICALQTY"].value);
        }
        

        【讨论】:

          【解决方案7】:

          请试试这个:

          //In case you are getting this from ajax request put "returnObject.Json_Variable" instead of "Json_Variable"
          var obj = (JSON.parse("Json_Variable"));
          var resultPHYSICALQTY=obj.PHYSICALQTY);
          

          【讨论】:

          • @Shreya,如果您有任何疑问或问题,请随时联系我,如果您觉得有帮助,请将其标记为答案,以便对其他人也有帮助
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-07-02
          • 1970-01-01
          • 2017-07-17
          • 1970-01-01
          • 2013-04-06
          • 1970-01-01
          相关资源
          最近更新 更多