Php添加新的Json对象

时间:2015-10-16 08:04:42

标签: php json object

我有一个Json对象

{"cms18.test.silverbee.nl":{"domain":"cms18","template":"default"},"dmmd.test.silverbee.nl":{"domain":"dmmd","template":"default"},"opmaat.test.silverbee.nl":{"domain":"opmaat","template":"opmaat"},"opmaatdebiteurenadvies.nl":{"domain":"opmaat","template":"opmaat"},"navbar.test.silverbee.nl":{"domain":"navbar","template":"default"},"test18.test.silverbee.nl":{"domain":"test18testsilverbeenl","template":"test"},"huisartsplus.test.silverbee.nl":{"domain":"huisartsplustestsilverbeenl","template":"huisartsplus"},"robertenrademaker.test.silverbee.nl":{"domain":"robertenrademakertestsilverbeenl","template":"robert-en-rademaker"},"tilburg.test.silverbee.nl":{"domain":"tilburgtestsilverbeenl","template":"default"},"cbk-groningen.test.silverbee.nl":{"domain":"cbk_groningentestsilverbeenl","template":"cbk-groningen"},"getbusyinc.test.silverbee.nl":{"domain":"getbusyinctestsilverbeenl","template":"getbusyinc"}}

我想添加/推送我制作的新php字符串,我就这样了,我不确定它是否正确。

<?php
    $list= file_get_contents('list.json');
    $list = json_decode($list, true);

    include('veranderen.php');


    // Het toevoegen van een nieuwe URL
    $url = $_POST['new_url'];
    $t_d = $_POST['t_d']; 
    $t_t = $_POST['t_t'];
    $str[$url] = "{domain:".$t_d.","."template:".$t_t."},";

    include('delete.php');
    include('interface.php');
    include('lijst.php');
?>

3 个答案:

答案 0 :(得分:0)

我认为你可以尝试这样的事情

<?php
    $list= file_get_contents('list.json');
    $list = json_decode( $list, true );

   include('veranderen.php');


    $url = $_POST['new_url'];
    $t_d = $_POST['t_d']; 
    $t_t = $_POST['t_t'];

    $tmp=array();
    $tmp[ $url ] = array( 'domain'=>$t_d, 'template'=>$t_t );
    $list = json_encode( array_merge( $list, $tmp ), JSON_FORCE_OBJECT );
    $bytes=file_put_contents('list.json', $list, FILE_TEXT )

    include('delete.php');
    include('interface.php');
    include('lijst.php');
?>

答案 1 :(得分:0)

在PHP中解码json字符串时,会得到一个关联数组。

所以你可以

$list[$url] = array("domain" => $t_d, "template" => $t_t);

然后对其进行编码并重写list.json。

答案 2 :(得分:0)

我在示例代码中看到您正在使用字符串连接构建JSON fileData = File.ReadAllLines("textFile.txt").Where(i >= !String.IsNullOrEmpty(i))

我建议您了解PHP的内置$str[$url] = "{domain:".$t_d.","."template:".$t_t."},";json_encode()函数 - 这些函数允许您使用JSON而无需使用实际的字符串值。

构建要作为普通PHP数组或对象结构输出的数据结构,然后将其传递给json_decode()以获取完成的字符串。

您使用预先存在的字符串启动了问题。如果你已经在PHP代码中构建了它,那么我建议重新编码将其构建为PHP数组,并在最终输出时仅使用json_encode()。这将允许您在程序中的任何位置添加或更改数据。

如果您从其他地方收到了JSON字符串(即您已经获得了JSON格式的字符串),那么首先使用json_encode()将其转换为PHP数组/对象结构,然后使用它在PHP程序中使用该表单,然后在准备好输出时再使用json_decode()将其重新转换为JSON字符串。