0

我是json的新手。我在文件中有现有的 json 数据。这里看起来像:

{

    "qwqw":{
        "id":3,
        "item1":{
            "id":15,
            "price":31.85
        },
        "item2":{
            "id":17,
            "price":26
        },
        "item3":{
            "id":16,
            "price":57.85
        }
    }
}

我可以使用 json_decode 获得这个值。我将使用此代码添加另一个条目。

$data = json_decode( file_get_contents('test.ini'), true );
$data[] = array(
                    'id'=>4,
                    'item1'=>array(
                        'id'=>15,
                        'price'=>11
                    ), 
                    'item2'=>array(
                        'id'=>17,
                        'price'=>12
                    ),
                    'item3'=>array(
                        'id'=>16,
                        'price'=>13.50
                    )
                );

file_put_contents('test.ini', json_encode($data) );

这工作正常。当我再次解码时。这是它的外观。

     {

        "qwqw":{
            "id":3,
            "item1":{
                "id":15,
                "price":31.85
            },
            "item2":{
                "id":17,
                "price":26
            },
            "item3":{
                "id":16,
                "price":57.85
            }
        },

         "0":{
            "id":3,
            "item1":{
                "id":15,
                "price":11
            },
            "item2":{
                "id":17,
                "price":12
            },
            "item3":{
                "id":16,
                "price":13.5
            }
        }
    }

我的问题是,我可以更改值“0”吗?到一个字符串。

谁能帮忙?

4

3 回答 3

2

0 在这里是一个字符串,你可以知道,因为它有引号。

但是如果你想要一个不同的字符串,不要使用:

$data[] = array(
   /* ... */
)

但:

$data['myKey'] = array(
   /* ... */
)
于 2012-07-24T09:32:44.990 回答
1

是的你可以

$data['string'] = array(
                    'id'=>4,
                    'item1'=>array(
                        'id'=>15,
                        'price'=>11
                    ), 
                    'item2'=>array(
                        'id'=>17,
                        'price'=>12
                    ),
                    'item3'=>array(
                        'id'=>16,
                        'price'=>13.50
                    )
                );
于 2012-07-24T09:32:54.493 回答
1

采用

$data["the_string_key"] = array(
   //...
);
于 2012-07-24T09:33:16.613 回答