2012-07-24 79 views
0

我是json的新手。我有一个文件中存在json数据。在这里,它看起来像:PHP 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”吗?到一个字符串。

任何人都可以帮忙吗?

+2

只需使用$ data [“the_string_you_want”] = array(...); – yent 2012-07-24 09:32:42

回答

2

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

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

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

但:

$data['myKey'] = array(
    /* ... */ 
) 
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 
        ) 
       ); 
+0

谢谢!有用! ^^ – justin 2012-07-24 09:34:49

1

使用

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