我有这些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