求解答一個并列的json數據應該怎么處理 已經思考了2天了還是沒結果
其實有兩個問題
先說第一個問題
我是通過PDO 的fetchAll(PDO::FETCH_ASSOC)屬性方法獲取一個關聯數組
格式是一個二維數組
通過print_r打印后獲得
Array?(?[0]?=>?Array?(?[id]?=>?1?[name]?=>?kim1?[password]?=>?我是中文字符?[date]?=>?2016-01-01?00:00:00?)?[1]?=>?Array?(?[id]?=>?2?[name]?=>?kim2?[password]?=>?我是中文字符1??[date]?=>?2016-01-01?00:00:00?)?[2]?=>?Array?(?[id]?=>?3?[name]?=>?kim3?[password]?=>?我是中文字符1?[date]?=>?2016-01-01?00:00:00?)
問題是我使用json_encode()方法轉換后轉換后得到的是 這樣一個并列數組的json格式
[{"id":"1","name":"kim1","password":"\u6211\u662f\u4e2d\u6587\u5b57\u7b26","date":"2016-01-01?00:00:00"},{"id":"2","name":"kim2","password":"\u6211\u662f\u4e2d\u6587\u5b57\u7b26","date":"2016-01-01?00:00:00"},{"id":"3","name":"kim3","password":"\u6211\u662f\u4e2d\u6587\u5b57\u7b26","date":"2016-01-01?00:00:00"}]
然而老師的php是通過設置的二維數組
$members['1']['username']?=?"幕課網"; $members['1']['password']?=?"mukewang"; $members['2']['username']?=?"袁明賀"; $members['2']['password']?=?"haha"; $members['2']['address']?=?"北京市朝陽區"; $members['3']['members']['username']="我是第三個用戶名";
我使用同樣的方法?通過print_r打印后獲得的是也是和我一樣的數組格式
Array?(?[1]?=>?Array?(?[username]?=>?幕課網?[password]?=>?mukewang?)?[2]?=>?Array?(?[username]?=>?袁明賀?[password]?=>?haha?[address]?=>?北京市朝陽區?[members]?=>?Array?(?[username]?=>?我是第三個用戶名?)?)?)
那么問題來了 同樣我通過我使用json_encode()方法轉換后 的結果和得出的結果截然不同
是什么問題 ?老師的得出的結果是:
?{"1":{"username":"\u5e55\u8bfe\u7f51","password":"mukewang"},"2":{"username":"\u8881\u660e\u8d3a","password":"haha","address":"\u5317\u4eac\u5e02\u671d\u9633\u533a","members":{"username":"\u6211\u662f\u7b2c\u4e09\u4e2a\u7528\u6237\u540d"}}}
我想問的第一個問題是 為什么會這樣 一樣的數組格式 轉換JSON后得的結果為什么截然不同
下面是第二問問題
當得到老師的這種json格式
我可以通過"$().data[1].name: 獲取值 "幕課網"?
那么這種[{},{}]并列數組的格式 要怎么才能獲取里面的name對應的"kim1"的值
2016-02-20
第一個問題是不是想問json_encode后,你的最外面是[ ]數組形式 ,老師的是{ }鍵值對形式?
php數組是不管鍵名的,但要想json是數組的話,那么php數組鍵名必須是從數字0開始且連續的,你的是從0開始,而老師的$members是從1開始的,所以json后和你的不一樣。改成下面寫法就可以獲得和你一樣的結果了。
print_r和json_encode后結果:
2016-01-09
這里解釋一下剛剛想到怎么處理這個并列的json格式也就第二問題
就通過用處理數組的思維來處理這種格式json數據
獲取第每一個下標即可: ?dara[0]['name'] ?這樣就可以獲取name對應的值了?
這個小問題解答 老師開始講要說明的 但是始終都沒說怎么處理這樣的數據 ?然后遇到同樣問題的同學們
不過第一個轉換后得到結果不一樣的問題 還是不知道什么回事 等待答復吧?