Java中

时间:2015-06-24 08:56:19

标签: java json string parsing

我有一个来自URL的字符串,我知道格式化为JSON,但我不知道可以更改的字段和大小。我尝试将其解析为JSON对象,以便能够迭代它。字符串看起来像那样:

  

{ “_索引”: “my_index”, “_类型”: “my_type”, “_ ID”: “67663551-ed47-11e4-99b8-93bceafc1a4e”, “_版本”:4 “找到”:真“term_vectors “:{” 描述 “:{” field_statistics “:{” sum_doc_freq “:573723”,doc_count “:13992”,sum_ttf “:626963},” 术语 “:{” 1930 “:{” doc_freq “:391,” TTF “:398,” term_freq “:1,” 标记 “:[{” 位置 “:1,” start_offset “:7,” end_offset “:11}]},” 1er酒店 “:{” doc_freq “:1406,” TTF “:1505,” term_freq “:1,” 标记 “:[{” 位置 “:11”,start_offset “:64,” end_offset “:67}]},” 2em的 “:{” doc_freq “:5”,TTF “:5”,term_freq “:1,” 标记 “:[{” 位置 “:18,” start_offset “:104,” end_offset “:107}]},” 骨 “:{” doc_freq “:132,” TTF “:138,” term_freq “:1,” 标记 “:[{” 位置 “:26,” start_offset “:158,” end_offset “:163}]},” 公共汽车 “:{” doc_freq “:531,” TTF “:556,” term_freq “:1,” 标记 “:[{” 位置 “:31,” start_offset “:197,” end_offset “:200}]},” 洞 “:{” doc_freq “:2176,” TTF “:2300,” term_freq “:1,” 标记 “:[{” 位置 “:10”,start_offset “:59,” end_offset “:63}]},” chambr “:{” doc_freq “:5087,” TTF “:6194,” term_freq “:2”,标记 “:[{” 位置 “:9”,start_offset “:51,” end_offset “:58},{” PO sition “:19,” start_offset “:109,” end_offset “:116}]},” 硬币 “:{” doc_freq “:3385,” TTF “:3765,” term_freq “:2”,标记 “:[{”位置 “:4”,start_offset “:24,” end_offset “:28},{” 位置 “:12,” start_offset “:70,” end_offset “:74}]},” comerc “:{” doc_freq“:3226 “TTF”:3265, “term_freq”:1, “标记”:[{ “位置”:29, “start_offset”:182, “end_offset”:190}]}, “cuisin”:{ “doc_freq”:8241 “TTF”:8537, “term_freq”:2 “标记”:[{ “位置”:5 “start_offset”:29, “end_offset”:36},{ “位置”:13, “start_offset”:75 “end_offset”:82}]}, “不要”:{ “doc_freq”:20, “TTF”:20, “term_freq”:1, “标记”:[{ “位置”:23, “start_offset”:139 “end_offset”:145}]}, “doubl”:{ “doc_freq”:1299, “TTF”:1417, “term_freq”:1, “标记”:[{ “位置”:20, “start_offset”:117 “end_offset”:123}]}, “douch”:{ “doc_freq”:3687, “TTF”:3854, “term_freq”:2 “标记”:[{ “位置”:7, “start_offset”:41 “end_offset”:47},{ “位置”:16, “start_offset”:94, “end_offset”:100}]}, “ENTR”:{ “doc_freq”:3343, “TTF”:3540, “term_freq” :1, “标记”:[{ “位置”:21, “start_offset”:124, “end_offset”:130}]}, “展览会”:{“doc_fr当量 “:608,” TTF “:618,” term_freq “:1,” 标记 “:[{” 位置 “:27,” start_offset “:164,” end_offset “:174}]},” LILE “:{” doc_freq “:9535,” TTF “:13834”,term_freq “:1,” 标记 “:[{” 位置 “:2”,start_offset “:12,” end_offset “:17}]},” 位置 “:{” doc_freq “:3054,” TTF “:3387,” term_freq “:1,” 标记 “:[{” 位置 “:25,” start_offset “:149,” end_offset “:157}]},的” Maison “:{” doc_freq “:2032,” TTF “:3087,” term_freq “:1,” 标记 “:[{” 位置 “:0,” start_offset “:0”,end_offset “:6}]},” 地铁 “:{” doc_freq “:4695,” TTF “:4928,” term_freq “:1,” 标记 “:[{” 位置 “:30,” start_offset “:191,” end_offset “:196}]},” pouvant “:{” doc_freq “:84,” TTF “:91,” term_freq “:1,” 标记 “:[{” 位置 “:22,” start_offset “:131,” end_offset “:138}]},” proch “:{” doc_freq “:2566,” TTF “:2754,” term_freq “:1,” 标记 “:[{” 位置 “:28,” start_offset “:175,” end_offset “:181}]},” RDC “:{” doc_freq “:457,” TTF “:464,” term_freq “:1,” 标记 “:[{” 位置 “:3”,start_offset “:18,” end_offset “:21}]},” SDB “:{” doc_freq “:1008,” TTF “:1019,” term_freq “:2”,标记 “:[{” 位置 “:6,” start_offset “:37,” end_offset “:40},{” 位置“: 15, “start_offset”:90, “end_offset”:93}]}, “sejou”:{ “doc_freq”:5837, “TTF”:5993, “term_freq”:1, “标记”:[{ “位置”: 14, “start_offset”:83, “end_offset”:89}]}, “WC”:{ “doc_freq”:5543, “TTF”:5706, “term_freq”:2 “标记”:[{ “位置”:如图8所示, “start_offset”:48, “end_offset”:50},{ “位置”:17, “start_offset”:101, “end_offset”:103}]}}}}}

我没有成功将其解析为JSON可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

我对映射的最佳体验是com.fasterxml.jackson

用于从类中创建Json String(无论子类是什么,只要所有子类都有适当的getter和setter,以及空(公共)构造函数)

public String toJson() {
    final ObjectMapper objectMapper = new ObjectMapper();
    objectMapper.configure(SerializationFeature.INDENT_OUTPUT, true);
    StringWriter stringEmp = new StringWriter();
    try {
        objectMapper.writeValue(stringEmp, this);
    } catch (IOException e) {
        e.printStackTrace();
    }
    return stringEmp.toString();
}

使用

public static ThisClass initFromJson(final String json) {
    final ObjectMapper mapper = new ObjectMapper();
    ThisClass item;
    try {
        item = mapper.readValue(json, ThisClass.class);
    } catch (IOException e) {
        return null;
    }

    return item;
}

从json字符串加载类

如果你有一个Json对象并且没有它的Java字段,你可能想尝试http://timboudreau.com/blog/json/read来生成Java代码。