我有這些JSON字符串:JSON字符串爲Java String
{
"Results": {
"output1": {
"type": "table",
"value": {
"ColumnNames": ["userId", "documentId", "Scored Labels", "Scored Probabilities"],
"ColumnTypes": ["String", "String", "Boolean", "Double"],
"Values": [["100213199594809000000", "1Ktol-SWvAh8pnHG2O7HdPrfbEVZWX3Vf2YIPYXA_8gI", "False", "0.375048756599426"], ["103097844766994000000", "1jYsTPJH8gaIiATix9x34Ekcj31ifJMkPNb0RmxnuGxs", "True", "0.753859758377075"]]
}
}
}
}
我想有隻ColumnNames
和Values
。我曾與一些嘗試過這樣的:
Map<String,Object> map = mapper.readValue(filename, Map.class);
String CN = (String) map.get("ColumnNames");
但後來我得到以下錯誤:
Exception in thread "main" org.codehaus.jackson.JsonParseException: Unexpected character ('A' (code 65)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')
at [Source: [email protected]; line: 1, column: 2]`
我和JSON工作只有幾次。有人可以幫我嗎?
對我來說最好的情況是這樣的,我在另一種情況下所做的:
String uId = (String) attr.get("userId");
這可能嗎?
所以,現在我已經做到了這一點:
我嘗試這樣的:
public class ClientPOJO {
private String userId;
private String documentId;
public String getuserId() {
return userId;
}
public void setuserId(String userId) {
this.userId = userId;
}
public String getdocumentId() {
return documentId;
}
public void setdocumentId(String documentId) {
this.documentId = documentId;
}
}
然後:
ObjectMapper mapper = new ObjectMapper();
ClientPOJO clientes= mapper.readValue(filename, ClientPOJO.class);
String uid = clientes.getuserId();
但現在當我做一個Prtinout我去拿像以前一樣的錯誤:
Exception in thread "main" org.codehaus.jackson.JsonParseException: Unexpected character ('A' (code 65)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')
at [Source: [email protected]; line: 1, column: 2]
您是否必須使用jackson或可以使用其他JSON庫? – Pshemo
其他庫文也適合我。重點在於,我必須以seperat形式獲取userId,documentID和得分標籤。我需要這個,因爲我以後會發送這個。 – Tim1234
在這種情況下,請看看其他問題,如https://stackoverflow.com/questions/11874919/parsing-json-string-in-java。所有你需要做的就是獲取由「結果」鍵保存的json對象,然後從該對象獲取由「值」鍵保存的對象。從那裏只需要獲取「ColumnNames」和「Values」的json數組。 – Pshemo