2016-03-22 23 views
0

我想知道,如果下面的消息是根據JSON格式以及分析,我認爲這是但需要處理它的應用程序,出現以下錯誤抱怨它這個json文件解析得很好嗎?

[ERR] TX數據JSON文件錯誤

該文件中的代碼是這樣一個

{"tx": 
{ 
    "moteeui":"fa789f0000000000", 
    "txmsgid":"000000000152", 
    "trycount":"5", 
    "txsynch" : "false", 
    "ackreq" : "true", 
    "userdata": 
    { 
     "port":"10", 
     "payload":"ABCABC" 
    } 
} 
} 

由於提前,

問候!

我也曾嘗試下面的代碼片段

[{ 
    "mote": "202020", 
    "payload": "ABCB", 
    "port": 2, 
    "trycount": 5, 
    "txmsgid": "" 
}] 

我與JSONLint驗證,我得到一個錯誤說

[ERR]tx data JSON parsing error: 3 object item(s) left unpacked 

是否有印象嗎?

再次感謝

+0

如果您沒有向我們展示解析代碼,我們無法確定它是否正確解析。 JSON至少有效。 –

+0

當有疑問時,www.jsonlint.com(或其他)。是的,你的JSON是有效的,所以你需要給你的問題提供更多的上下文。 – YvesLeBorg

+0

感謝@TimCastelijns和YvesLeBorg,以及我無法真正看到如何解析正在作出,我只能訪問這個晦澀難懂的日誌... – ndarkness

回答

1

是的,它是正確的。

對於您的信息,JSONLint是一個很好的網站,用於檢查JSON的有效性。

但是,您可能想重新考慮將數值設置爲字符串。也就是說,它是一個更好的主意,說:

"trycount":5 

而不是

"trycount":"5" 

由於前者指示的任何應用程序消耗的JSON值應解析爲一個數字。

同樣與布爾值,最好的做法是使用:

"txsynch" : false 

而不是

"txsynch" : "false" 

它不會引起你的JSON解析器錯誤傳遞這些字符串,它只是更好的做法。

解析器中的錯誤可能有許多不同的原因。

+1

請注意,儘管使用布爾值表示布爾值以及整數的布爾值是更好的做法,但將其放入字符串中並不會在解析過程中導致錯誤。 –