Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取嵌套的JSON_Javascript_Json - Fatal编程技术网

Javascript 获取嵌套的JSON

Javascript 获取嵌套的JSON,javascript,json,Javascript,Json,如何在“成本”中获得“价值”?请帮帮我,我刚从学校学过JSON。我试过了,但没用。我获取“值”的代码在代码的底部 <p id="demo"></p> <script> var text='{ "rajaongkir":{ "query":{ "origin":"501", "destination":"114", "weight":1700, "courier":"jne" }, "status":{

如何在“成本”中获得“价值”?请帮帮我,我刚从学校学过JSON。我试过了,但没用。我获取“值”的代码在代码的底部

 <p id="demo"></p>

 <script>
 var text='{ "rajaongkir":{
  "query":{
     "origin":"501",
     "destination":"114",
     "weight":1700,
     "courier":"jne"
  },
  "status":{
     "code":200,
     "description":"OK"
  },
  "origin_details":{
     "city_id":"501",
     "province_id":"5",
     "province":"DI Yogyakarta",
     "type":"Kota",
     "city_name":"Yogyakarta",
     "postal_code":"55000"
  },
  "destination_details":{
     "city_id":"114",
     "province_id":"1",
     "province":"Bali",
     "type":"Kota",
     "city_name":"Denpasar",
     "postal_code":"80000"
  },
  "results":[
     {
        "code":"jne",
        "name":"Jalur Nugraha Ekakurir (JNE)",
        "costs":[
           {
              "service":"OKE",
              "description":"Ongkos Kirim Ekonomis",
              "cost":[
                 {
                    "value":38000,  //<<<<<<  GET THIS VALUE
                    "etd":"4-5",
                    "note":""
                 }
              ]
           },
           {
              "service":"REG",
              "description":"Layanan Reguler",
              "cost":[
                 {
                    "value":44000,
                    "etd":"2-3",
                    "note":""
                 }
              ]
           },
           {
              "service":"SPS",
              "description":"Super Speed",
              "cost":[
                 {
                    "value":349000,
                    "etd":"",
                    "note":""
                 }
              ]
           },
           {
              "service":"YES",
              "description":"Yakin Esok Sampai",
              "cost":[
                 {
                    "value":98000,
                    "etd":"1-1",
                    "note":""
                 }
              ]
           }
        ]
     }
  ]}}';  
   obj=JSON.parse(text);
   document.getElementById("demo").innerHTML=
   obj.rajaongkir.results[0].costs[0].cost[0].value;
   </script>

var text='{“rajaongkir”:{ “查询”:{ “来源”:“501”, “目的地”:“114”, “重量”:1700, “信使”:“jne” }, “地位”:{ “代码”:200, “说明”:“确定” }, “原产地详细信息”:{ “城市标识”:“501”, “省id”:“5”, “省”:“日惹地”, “类型”:“科塔”, “城市名称”:“日惹”, “邮政编码”:“55000” }, “目的地详细信息”:{ “城市id”:“114”, “省id”:“1”, “省”:“巴厘岛”, “类型”:“科塔”, “城市名称”:“登巴萨”, “邮政编码”:“80000” }, “结果”:[ { “代码”:“jne”, “名称”:“Jalur Nugraha Ekakurir(JNE)”, “费用”:[ { “服务”:“OK”, “描述”:“Ongkos Kirim Ekonomis”, “成本”:[ {
“value”:38000,//首先将
文本
字符串解析为结构

然后,所有这些都取决于函数和getter的组合:

var input= JSON.parse(text);

input.results.forEach (function(result){
  result.costs.forEach (function(costEntity){
     console.log(costEntity.cost.value);
  });
});

但在通过Chrome控制台运行代码后,它不会编译,即使是作为字符串,所以首先修复:)

您的JSON不是有效的字符串文字。不允许有换行符,除非您在每一行末尾都使用
\

如果添加这些
\
,一切正常:


您的输入字符串错误

<p id="demo"></p>

 <script>
 var text='{ "rajaongkir":{ '
+ '  "query":{'
+'     "origin":"501",'
+'     "destination":"114",'
+'     "weight":1700,'
+'     "courier":"jne"'
+'  },'
+'  "status":{'
+'     "code":200,'
+'     "description":"OK"'
+'  },'
+'  "origin_details":{'
+'     "city_id":"501",'
+'     "province_id":"5",'
+'     "province":"DI Yogyakarta",'
+'     "type":"Kota",'
+'     "city_name":"Yogyakarta",'
+'     "postal_code":"55000"'
+'  },'
+'  "destination_details":{'
+'     "city_id":"114",'
+'     "province_id":"1",'
+'     "province":"Bali",'
+'     "type":"Kota",'
+'     "city_name":"Denpasar",'
+'     "postal_code":"80000"'
+'  },'
+'  "results":['
+'     {'
+'        "code":"jne",'
+'        "name":"Jalur Nugraha Ekakurir (JNE)",'
+'        "costs":['
+'           {'
+'              "service":"OKE",'
+'              "description":"Ongkos Kirim Ekonomis",'
+'              "cost":['
+'                 {'
+'                    "value":38000,'  //<<<<<<  GET THIS VALUE
+'                    "etd":"4-5",'
+'                    "note":""'
+'                 }'
+'              ]'
+'           },'
+'           {'
+'              "service":"REG",'
+'              "description":"Layanan Reguler",'
+'              "cost":['
+'                 {'
+'                    "value":44000,'
+'                    "etd":"2-3",'
+'                    "note":""'
+'                 }'
+'              ]'
+'           },'
+'           {'
+'              "service":"SPS",'
+'              "description":"Super Speed",'
+'              "cost":['
+'                 {'
+'                    "value":349000,'
+'                    "etd":"",'
+'                    "note":""'
+'                 }'
+'              ]'
+'           },'
+'           {'
+'              "service":"YES",'
+'              "description":"Yakin Esok Sampai",'
+'              "cost":['
+'                 {'
+'                    "value":98000,'
+'                    "etd":"1-1",'
+'                    "note":""'
+'                 }'
+'              ]'
+'           }'
+'        ]'
+'     }'
+'  ]}}';  
   obj=JSON.parse(text);
   document.getElementById("demo").innerHTML=
   obj.rajaongkir.results[0].costs[0].cost[0].value;
   </script>

var text='{“rajaongkir”:{' +““查询”:{” +“来源”:“501” +“目的地”:“114” +“重量”:1700 +“信使”:“jne” +' },' +““地位”:{” +“‘代码’:200,” +“说明”:“确定” +' },' +““来源详细信息”:{” +“城市id”:“501” +“省id”:“5” +“省”:“日惹地” +“类型”:“科塔” +“城市名称”:“日惹” +“邮政编码”:“55000” +' },' +““目的地详细信息”:{” +“城市标识”:“114” +“省id”:“1” +“省”:“巴厘岛” +“类型”:“科塔” +“城市名称”:“登巴萨” +“邮政编码”:“80000” +' },' +“结果”:[' +' {' +““代码”:“jne” +“名称”:“Jalur Nugraha Ekakurir(JNE)” +“成本”:[' +' {' +“服务”:“OK” +“描述”:“Ongkos Kirim Ekonomis” +“成本”:[' +' {'
+““value”:38000,”/您的代码是正确的,但在Javascript中,我们不能在几行中声明字符串

您有两种解决方法:

  • 使字符串只在一行中

    var text = '{...}';
    
  • 在每行末尾添加一个
    \

    var text='{ "rajaongkir":{ \
         "query":{ \
         ...
         "origin":"501", \
    }}}';  
    
  • 将每行用
    '
    包装,并在开头添加一个
    +

    var text='{ "rajaongkir":{ '
    + '  "query":{'
    ...
    + ']}}';
    

  • 我喜欢你审查
    w3sch**ls
    ,但我认为它已经变得不受审查了-\uz-学会调试,每一步都登录到控制台
    obj
    然后
    obj.rajaongkir
    控制台。chrome或firefox中的log
    将非常方便。假设
    文本
    被解析为JSON,然后循环遍历“成本”数组在
    text.rajaongkir.results.costs
    中,然后获取每个项目的成本…到底什么不起作用?在我看来很好,JSON是有效的,对成本的访问是正确的。你有什么错误吗?
    text
    甚至不是有效的字符串文本这有什么帮助吗?你甚至不说这个字符串有什么错。我觉得很愚蠢哈哈谢谢你的帮助。对不起,我刚刚了解了JSON