1. 程式人生 > >json解析中的誤區

json解析中的誤區


問題描述:解析不出json物件資料

本人在客戶端組建了一個json串,形如下圖:

提交到後臺,後臺呼叫PHP檔案,在PHP檔案中接收該json串,並將其傳遞給一個C檔案去處理。我在C檔案中解析json中的data時開始出現問題,解析不出來data的資訊,也解不出來”ADDR”,”AID”,”chan”等資訊。

我們先看一下客戶端傳送程式碼,如下:

可以看出我傳送的是一個json字串。我們在看一下PHP接收檔案程式碼,如下:

可以看到我用一個變數接收json串並將其傳遞給C檔案的。接下來我在C檔案中解析該json串。

是按照解析json物件的方式解析AID的值的。

原因分析:

       當PHP接收到json串的時候,將json串賦值給$json 而在PHP檔案中賦值語句將json串轉化成了字串,而在C檔案中無法按照json物件解析data的原因也是這個,這裡json是json串而不是json物件,所以是不可能解析成功的。

 

解決辦法:

       在C檔案中使用使用下邊的函式,從json串中解析出data資料,在對該資料進行解析就可以很簡單的解析出來了。

      

 

啟示:

       Json字串是字串,是為了便於傳輸。一般情況下我們在接收到json串的時候都會將json串轉化一下成為json物件,方便解析。所以我們要清楚我們接收到的是json字串還是json物件,並且對其解析也是不同的。