【问题标题】:How to update/edit a JSON using PHP [duplicate]如何使用 PHP 更新/编辑 JSON [重复]
【发布时间】:2020-09-27 08:20:14
【问题描述】:

请帮帮我!

JSON:

{
"1":{
"TchID":"G303992",
"TchData":{
           "TchID":"G303992",
           "TchNama":"G303992",
           "TchPassword":43511824
           }
},
"2":{
"TchID":"G141843",
"TchData":{
           "TchID":"G141843",
           "TchNama":"G141843",
           "TchPassword":22932450
}
}
}

如何更新嵌套对象中的值

"2":{
"TchID":"G141843",
"TchData":{
           "TchID":"G141843",
           "TchNama":"G141843",
           "TchPassword":22932450
}
}

"2":{
"TchID":"G141843",
"TchData":{
           "TchID":"G141843",
           "TchNama":"Alex J",
           "TchPassword":22932450
}
}

在php脚本中??????

你看我想把"TchNama":"G141843"改成"TchNama":"Alex J"

这是我的代码

<?php
$data = '{"1":{"TchID":"G303992","TchData":{"TchID":"G303992","TchNama":"G303992","TchPassword":43511824}},"2":{"TchID":"G141843","TchData":{"TchID":"G141843","TchNama":"G141843","TchPassword":22932450}}}';

$guru = json_decode($data);
foreach ($guru as $items){
if($items['TchID'] == 'G303992'){

// i dont know how to change $items['TchData']['TchNama'] = 'G141843' to 'Alex J'

$viewchange = json_encode($guru);
echo $viewchange;
}
}
?>

【问题讨论】:

  • (当然,将修改后的数组编码为 JSON 并输出它属于 循环之后。)

标签: php json


【解决方案1】:

您可以使用 json_encode($,TRUE) 将 json 字符串转换为数组对象。

那么如果你通过array_keys()获取key就可以循环遍历对象的key。

然后您可以使用单独的变量来遍历主对象属性并更改该对象,或者直接访问主对象并在源处更改它,这就是我在下面所做的:

$data = '{"1":{"TchID":"G303992","TchData":{"TchID":"G303992","TchNama":"G303992","TchPassword":43511824}},
          "2":{"TchID":"G141843","TchData":{"TchID":"G141843","TchNama":"G141843","TchPassword":22932450}}}';

$guru = json_decode($data, true);

$keys = array_keys($guru);

foreach ($keys as $key) {
    if($guru[$key]['TchID'] == 'G303992'){
        $guru[$key]["TchNama"] = "Alex J";
    }
}

$viewchange = json_encode($guru);
echo $viewchange;

【讨论】:

【解决方案2】:

请试试这个。

$data = '{"1":{"TchID":"G303992","TchData":{"TchID":"G303992","TchNama":"G303992","TchPassword":43511824}},"2":{"TchID":"G141843","TchData":{"TchID":"G141843","TchNama":"G141843","TchPassword":22932450}}}';
$guru = json_decode($data);
var_dump($guru);
foreach ($guru as $items) {
    if ($items->TchID == 'G141843') {
        $items->TchData->TchNama = "Alex J";
    }
}
var_dump($guru);
$viewchange = json_encode($guru);
echo $viewchange;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-30
    • 2011-12-14
    • 1970-01-01
    • 2015-12-07
    • 1970-01-01
    • 2021-12-16
    • 2016-10-18
    • 2012-12-11
    相关资源
    最近更新 更多