我正在尝试解析这个作为REST API调用响应的JSON。你能帮我把它解析为关键值对吗?
对象名称不存在。还有筑巢。记录之间似乎没有新的界限。
目的是提取这些数据并将其加载到数据库中。
[
{
"cc_emails":["feedback@xyz.com"],
"fwd_emails":[],
"reply_cc_emails":["feedback@xyz.com"],
"fr_escalated":false,
"spam":false,
"email_config_id":6000038087,
"group_id":6000110481,
"priority":1,
"requester_id":6010410791,
"responder_id":6002817857,
"source":1,
"company_id":null,
"status":2,
"subject":"fare",
"to_emails":["feedback@xyz.com"],
"product_id":null,
"id":45043,
"type":null,
"due_by":"2016-03-12T08:58:02Z",
"fr_due_by":"2016-03-08T08:58:02Z",
"is_escalated":false,
"description":"Dear xyze Team,\r\n\r\nWhy r u increased fair again and againasas0mail.gmail.com</a>.<br>\n",
"custom_fields":
{
"category":null,
"issue":null,
"route_id":null,
"phone_number":null,
"department":null,
"booking_id":null
},
"created_at":"2016-03-07T08:58:02Z",
"updated_at":"2016-03-07T08:58:03Z",
// ...... repeat
}
]
答案 0 :(得分:0)
执行此操作的最佳方法是使用http://www.jsonschema2pojo.org/ 在那里输入你的json 将源类型更改为JSON 设置正确的类名和包。 生成的pojo可以直接从json
映射如果您使用resttemplate命中api,则可以使用getForObject从输出中自动设置pojo。
答案 1 :(得分:0)
使用gson,您可以非常简单地完成此操作。
做一个类来匹配json中的字段,如:
public class Example {
private List<String> cc_emails;
private List<String> fwd_emails;
private List<String> reply_cc_emails;
private Boolean fr_escalated;
private Boolean spam;
private Integer email_config_id;
...
private CustomFields custom_fields;
private String created_at;
private String updated_at;
}
然后你需要做另一个来映射自定义字段
public class CustomFields {
private String category;
...
}
使用json你可以像这样解析它:
Type type = new TypeToken<Collection<Example>>(){}.getType();
new Gson().fromJson(json,type);
你必须向Gson宣读它是一个列表,如果它是一个单一的对象就是这样:
new Gson().fromJson(json,Example.class);
这是我通常采取的方法,也是在日期java.sql.Timestamp类也可能解析它,你需要尝试它。
答案 2 :(得分:-1)
您可以使用Gson(https://github.com/google/gson)或Jackson(https://github.com/FasterXML/jackson)并将其反序列化为地图。