[英]How to properly use JSON.parse?
I'm receiving a string with php and then parsing it:我收到一个带有 php 的字符串,然后解析它:
String saved in db:保存在数据库中的字符串:
{"totale_casi":825,"terapia_intensiva":24,"ricoverati_con_sintomi":122,"totale_ospedalizzati":146,"isolamento_domiciliare":598,"totale_positivi":744,"dimessi_guariti":40,"deceduti":41,"tamponi":6477}, {"totale_casi"235,"terapia_intensiva":123,"ricoverati_con_sintomi":154,"totale_ospedalizzati":344,"isolamento_domiciliare":654,"totale_positivi":786,"dimessi_guariti":988,"deceduti":675,"tamponi":2324}
Then I do然后我做
var myJson = '<?php echo $dataCustom; ?>';
This is how It prints on js这就是它在js上打印的方式
var myJson = '{"totale_casi":825,"terapia_intensiva":24,"ricoverati_con_sintomi":122,"totale_ospedalizzati":146,"isolamento_domiciliare":598,"totale_positivi":744,"dimessi_guariti":40,"deceduti":41,"tamponi":6477}, {"totale_casi"235,"terapia_intensiva":123,"ricoverati_con_sintomi":154,"totale_ospedalizzati":344,"isolamento_domiciliare":654,"totale_positivi":786,"dimessi_guariti":988,"deceduti":675,"tamponi":2324}';
How to read a property?如何读取属性?
Tried试过了
var myJson = '<?php echo $dataCustom; ?>';
var customJsonData = JSON.parse(myJson);
I am trying to:我在尝试着:
for(var d = 0; d < customJsonData.length; ++d) {
console.log(customJsonData[d]totale_positivi);
}
UPDATE更新
This is how I am constructing the json这就是我构建 json 的方式
var saveJsondata = {
"totale_casi": totCasiRegione,
"terapia_intensiva": totTerapiaRegione,
"ricoverati_con_sintomi": totSintomiRegione,
"totale_ospedalizzati": totOspedalizzatiRegione,
"isolamento_domiciliare": totDomiciliariRegione,
"totale_positivi": totPositiviRegione,
"dimessi_guariti": totGuaritiRegione,
"deceduti": totDecedutiRegione,
"tamponi": totTamponiRegione
};
Then sending that to db via ajax and Adding |
然后通过 ajax 将其发送到 db 并添加
|
in order to have something that I can use to separate the objects later.为了得到一些我以后可以用来分隔对象的东西。 I am saving
saveJsondata
to a field called jsonBlock
我将
saveJsondata
保存到名为jsonBlock
的字段
Then in php I do:然后在 php 我做:
$dataSavedBlocks = get_user_meta( $user_id, 'jsonBlock');
$dataCustom = $dataSavedBlocks[0];
$dataCustom = str_replace('|', '', $dataCustom);
Finally in js:最后在js中:
var myJson = '<?php echo $dataCustom; ?>';
Output of that is: Output 是:
var myJson = {"totale_casi":825,"terapia_intensiva":24,"ricoverati_con_sintomi":122,"totale_ospedalizzati":146,"isolamento_domiciliare":598,"totale_positivi":744,"dimessi_guariti":40,"deceduti":41,"tamponi":6477} ,{"totale_casi":47348,"terapia_intensiva":1362,"ricoverati_con_sintomi":11726,"totale_ospedalizzati":13088,"isolamento_domiciliare":12935,"totale_positivi":26023,"dimessi_guariti":13020,"deceduti":8305,"tamponi":133588} ;
Now I need to loop and get each individual value现在我需要循环并获取每个单独的值
You don't need to use the loop... just try console.log(customJsonData.totale_positivi).您不需要使用循环...只需尝试 console.log(customJsonData.totale_positivi)。 JSON properties become object attributes when parsed.
JSON 属性在解析时变为 object 属性。 Hence JavaScript Object Notation 8^D
因此 JavaScript Object表示法 8^D
Actually it is not an Array.实际上它不是一个数组。 If you want to iterate, use object keys.
如果要迭代,请使用 object 键。
var myJson = '{"totale_casi":825,"terapia_intensiva":24,"ricoverati_con_sintomi":122,"totale_ospedalizzati":146,"isolamento_domiciliare":598,"totale_positivi":744,"dimessi_guariti":40,"deceduti":41,"tamponi":6477} '; var customJsonData = JSON.parse(myJson); Object.keys(customJsonData).forEach(key=>{ console.log(customJsonData[key]); })
If you want a single value:如果你想要一个值:
var myJson = '{"totale_casi":825,"terapia_intensiva":24,"ricoverati_con_sintomi":122,"totale_ospedalizzati":146,"isolamento_domiciliare":598,"totale_positivi":744,"dimessi_guariti":40,"deceduti":41,"tamponi":6477} '; var customJsonData = JSON.parse(myJson); console.log(customJsonData.terapia_intensiva)
If you have an array of objects:如果你有一个对象数组:
var myJson = '[{"totale_casi":825,"terapia_intensiva":24,"ricoverati_con_sintomi":122,"totale_ospedalizzati":146,"isolamento_domiciliare":598,"totale_positivi":744,"dimessi_guariti":40,"deceduti":41,"tamponi":6477},{"totale_casi":826,"terapia_intensiva":24,"ricoverati_con_sintomi":122,"totale_ospedalizzati":146,"isolamento_domiciliare":598,"totale_positivi":744,"dimessi_guariti":40,"deceduti":41,"tamponi":6477},{"totale_casi":827,"terapia_intensiva":24,"ricoverati_con_sintomi":122,"totale_ospedalizzati":146,"isolamento_domiciliare":598,"totale_positivi":744,"dimessi_guariti":40,"deceduti":41,"tamponi":6477}]'; var customJsonData = JSON.parse(myJson); customJsonData.forEach(data=>{ console.log(data.totale_casi); })
This is how I resolved it:这就是我解决它的方法:
var myJson = '<?php echo $dataCustom; ?>';
var customJsonData = JSON.parse("["+myJson+"]");
Now that we have a valid json, we can loop and iterate with each obj:现在我们有了一个有效的 json,我们可以对每个 obj 进行循环和迭代:
for(var d = 0; d < customJsonData.length; ++d) {
console.log(customJsonData[d].totale_casi);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.