我有一个对象组织。
Class Phone{
String type;
String number;
String getType(){
return type;
}
String setType(String t){
type = t;
}
String getNumber(){
return number;
}
String setNumber(String n){
number = n;
}
}
Class Organization() {
String orgName;
Phone[] phone;
String getOrgName(){
return orgName;
}
String setOrgName(String name){
orgName = name;
}
String getPhone(){
return phone;
}
String setPhone(Phone[] phone){
phone = phone;
}
}
我正在尝试将Json转换为此Object。
{
"OrgName": "Some Org",
"phone": [
{ "type": "Phone 1", "number": "555 555-1234" },
{ "type": "Phone 2", "number": "555 555-4567" }
]
}
我对orgName有效的函数如下:
private static Object jsonToObject(String json, Class<?> c) throws Exception {
ObjectMapper objectMapper = new ObjectMapper();
Object obj = null;
try {
obj = objectMapper.readValue(json, clazz);
} catch (Exception e) {
System.out.println("exception " + e);
}
return obj;
}
我称之为:组织org =(组织)jsonToObject(json,Organization.class);
异常org.codehaus.jackson.map.exc.UnrecognizedPropertyException:无法识别的字段&#34;电话&#34;
答案 0 :(得分:0)
首先,您应该在类定义中使用public
访问修饰符。接下来,要将Java对象转换为JSON对象,应使用 java jackson 库。像这样:
String jsonString = "{'OrgName': 'Some Org', 'phone':[{'type': 'Phone1','number': '555 555-1234'}, {'type': 'Phone 2', 'number': '555 555-4567' }]}";
Organization organization = mapper.readValue(jsonString, Organization.class);
此外,杰克逊有一些有用的注释,你可以自己定制它。它为您的学习提供了良好的互联网资源。
有关杰克逊的更多信息,您可以使用以下链接:
答案 1 :(得分:0)
班级组织{//}
课程电话{//}
看起来更像是java。