2014-11-06 53 views
0

我有一些JSON發送到我的playframework網站作爲byte[]使用POST方法。傑克遜Json沒有正確讀取我的JSON

這裏是JSON

{ 
    "productFamily": "abcd", 
    "currentVersion": "12d11e3", 
    "serialNumber": "asdfasfdasdf", 
    "modelNumber": "sdfsfdasf", 
    "productCode": "safasdfsdfasdfsdfsd" 
} 

我想使用此代碼將其加載到一個JsonNode的例子:

public static Result submit() { 
    JsonNode recievedJson = request().body().asJson(); 

Eclipse的調試說recievedJson

_value = "{\r\n "productFamily": "abcd",\r\n "currentVersion": "12d11e3",\r\n "serialNumber": "asdfasfdasdf",\r\n "modelNumber": "sdfsfdasf",\r\n "productCode": "safasdfsdfasdfsdfsd"}" 

我的json字符串怎麼沒有被從請求正文解析到JsonNode obj?

當我嘗試調用recievedJson上的JsonNode方法時,我沒有得到預期的結果。例如recievedJson.get(0)返回nullrecievedJson.fields()返回null

對象項= recievedJson.get( 「productFamily」); Eclipse調試顯示item = null。

Object item = recievedJson.fields(); 返回一個空的迭代器

+1

什麼? Eclipse調試顯示對象的表示。它出什麼問題了? – 2014-11-06 16:43:05

+0

當我嘗試在recievedJson上調用JsonNode方法時,我沒有得到預期的結果。例如recievedJson.get(0)返回null,並且recievedJson.fields()返回null – visc 2014-11-06 16:44:46

+0

'JsonNode#get(int)'做什麼?請告訴我們,在你的情況下,'JsonNode#fields()'返回'null'。提供一個可重複的例子。 – 2014-11-06 16:47:08

回答

0

您正在嘗試使用get(int)方法訪問數組節點,而您的json是一個對象。請嘗試使用get(String)方法,其中String是您的關鍵名稱。

+0

不,我試過這個。檢查我的編輯 – visc 2014-11-06 16:55:12