PHP json编码和解码

时间:2012-07-24 09:30:43

标签: php json

我是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”吗?到一个字符串。

任何可以提供帮助的人?

3 个答案:

答案 0 :(得分:2)

0这里是一个字符串,你可以告诉它,因为它周围有引号。

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

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

但:

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

答案 1 :(得分: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
                    )
                );

答案 2 :(得分:1)

使用

$data["the_string_key"] = array(
   //...
);