Javascript 如何正确使用JSON.parse?

Javascript 如何正确使用JSON.parse?,javascript,php,Javascript,Php,我用php接收一个字符串,然后对其进行解析: 保存在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"

我用php接收一个字符串,然后对其进行解析:

保存在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}
那我会的

var myJson = '<?php echo $dataCustom; ?>';
如何读取属性

尝试

然后通过ajax将其发送到db并添加|,以便以后可以使用它来分离对象。我正在将saveJsondata保存到一个名为jsonBlock的字段中

然后在php中,我会:

$dataSavedBlocks = get_user_meta( $user_id, 'jsonBlock');
$dataCustom = $dataSavedBlocks[0]; 
$dataCustom = str_replace('|', '', $dataCustom);
最后在js中:

var myJson = '<?php echo $dataCustom; ?>';

现在我需要循环并获取每个单独的值

您不需要使用循环。。。只需尝试console.logcustomJsonData.totale_positivi。JSON属性在解析时成为对象属性。因此JavaScript对象表示法8^D实际上不是数组。如果要迭代,请使用对象键

var myJson=“{totale_casi:825,terapia_intensiva:24,ricoverati_con_sintomi:122,totale_ospedalizati:146,isolamento_dominiare:598,totale_positive:744,dimessi_guariti:40,deceduti:41,tamponi:6477}”; var customJsonData=JSON.parsemyJson; Object.keyscustomJsonData.forEachkey=>{ console.logcustomJsonData[key];
} 我就是这样解决的:

var myJson = '<?php echo $dataCustom; ?>';
var customJsonData = JSON.parse("["+myJson+"]");
现在我们有了一个有效的json,我们可以对每个obj进行循环和迭代:

for(var d = 0; d < customJsonData.length; ++d) {
  console.log(customJsonData[d].totale_casi);
}

改为像这样嵌入:var myJson=@zerkms好吧,让我试试看,这并不能解决你原来的问题,只是在你的JS中正确地嵌入了一个文字。你没有数组,所以没有什么需要迭代的:只是customJsonData.totale_positive你提供了逗号分隔的东西。这是什么意思?它不再是一个有效的JSON,如果我们有两个集合呢?因此JavaScript对象表示法在一开始是一个糟糕的名字。理想情况下,JSON和JS之间根本没有链接。@rob.m如果你有一个数组,你可以迭代它。但在你的问题中,你不知道。如何仅获得terapia_intensiva值?我的意思是每一个单独的值被分开,如果我们有两个或更多的值呢?@rob.m这是无效的JSON@Ramesh事实上,只要找到答案,就会更新问题。需要添加d[@rob.m好的,你能在var myJson=>之后添加myJson的样子吗?@Ramesh是的,我刚刚做了并更新了这个问题。非常感谢你很高兴你找到了答案。如果你想记录每个对象中的所有键和值,你可以使用customJsonData.forEachobj=>{object.entriesbj.forEach[key,value]=>{console.logkey,value}@Ramesh非常感谢,我将不得不学习如何不使用for Loop。您如何使用它没有什么问题。我只是想让您知道,如果您想轻松地同时使用键和值,使用Object.entries将对您有所帮助。@Ramesh是的,但如果我知道如何使用它,那么我将避免使用大量代码。请参阅我以前问过的这个代码复查问题E
$dataSavedBlocks = get_user_meta( $user_id, 'jsonBlock');
$dataCustom = $dataSavedBlocks[0]; 
$dataCustom = str_replace('|', '', $dataCustom);
var myJson = '<?php echo $dataCustom; ?>';
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}  ;
var myJson = '<?php echo $dataCustom; ?>';
var customJsonData = JSON.parse("["+myJson+"]");
for(var d = 0; d < customJsonData.length; ++d) {
  console.log(customJsonData[d].totale_casi);
}