Javascript 获取嵌套的JSON
如何在“成本”中获得“价值”?请帮帮我,我刚从学校学过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":{
<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