1、首先看一眼待转换的json串:他是一个数组对象,每个对象又包含三个节点Node、Service和Checks;而这三个几点又都包含子节点。
2、为了转换此json字符串,并存储数据到java中,定义了几个类。 (1)首先是NodesInfo类:其类里面有三个属性。 (2)然后定义“(1)”中所需要的类:Node、Service和Checks。 (3)还有“(2)”中对象所所需要的子类:Meta和TaggedAddresses
3、然后定义了一个MyJsonUtil,就是一个处理json转换的工具类,里面定义了toList方法。
4、然后定义测试类,如果直接调用toList转换会抛出异常。他是说Node在("node、service和checks)中找不到。No颊俄岿髭de是json串中的第一个节点Node,后面的("node、service和checks)是读取的类NodesInfo的属性。前面也分析过,即使在类NodesInfo中把属性名“node”改成“Node”,java也会自动识别为“node”(已经测试过)。所以关键的点就在:要把json串中的key关键字的首字母改成小写。
5、replace替换,代码如下。\" 是转义字符,替换连着冒号一起替换,这样查找更精确。 “Node”
6、再次测试,发现ok了,可以正确的获取到数据,这个json串已经很复杂了吧。