問題的響應創造了一個串是碼的相關片段:使用同時傑克遜ObjectMapper讀取來自使用同時傑克遜ObjectMapper讀取從一個無效JSON響應</p> <p>這裏創建的字符串與無效JSON
Response response = request.get();
String responseAsString = response.readEntity(String.class);
ObjectMapper mapper = new ObjectMapper();
JsonNode responseNode = mapper.readTree(responseAsString);
當我運行此代碼時,我得到以下例外:com.fasterxml.jackson.core.JsonParseException: Unexpected character ('-' (code 45)): was expecting comma to separate OBJECT entries
問題的背景: 我正在發出GET請求,並且它正在成功響應。然後,我將該響應轉換爲字符串,然後將其更改爲JsonNode並提取我想要的部分。如果我打印出它看起來像這樣的responseAsString:
{
"account": 123456789,
"balance": 5602,
"dateTime": 2017-06-15T03:29:00,
"token": "H77ABC0PPIQ"
}
我認爲問題已經到因與因爲不是所有的值作爲字符串發送是如何形成的響應。他們的類型如下:
account: long
balance: long
dateTime: DateTime
token: String
我不知道如何將響應轉換成一個JSON對象,這樣我可以得到像例如帳號單個值。
任何意見表示讚賞。謝謝!
這是無效的JSON。日期應該用引號括起來。 –
對,也許我錯誤地說了我的問題。當我得到響應並運行toString時,就是我所得到的 - 無效的JSON。我如何使用對象映射器或使其有效JSON?謝謝 – SuperCow
ObjectMapper解析JSON。如果你有什麼不是JSON,那麼它就不能解析它。轉到源代碼並修復您的JSON。或者使用其他能解析這個非JSON的東西。 –