代码已经修改,请至博客查看:http://sumile.cn
测试JSON数据
- {
- "error": "0",
- "data": [
- {
- "name": "1",
- "value": [
- {
- "name": "2",
- "value": "3"
- },
- {
- "name": "4",
- "value": "5"
- }
- ]
- },
- {
- "name": "6",
- "value": [
- {
- "name": "7",
- "value": "8"
- },
- {
- "name": "9",
- "value": "10"
- }
- ]
- }
- ]
- }
如果遇到这样的JSON格式的数据,你会怎样去解析?
每次碰到它都会很烦躁,所以写了下面的东西,一次性把它给弄出来,省的以后麻烦了。
首先要先创建相对于JSON数据的Bean
- package cn.sumile.S;
-
- import java.util.ArrayList;
-
- public class Bean {
- public String error;
- public ArrayList data;
-
- public String getError() {
- return error;
- }
-
- public void setError(String error) {
- this.error = error;
- }
-
- public ArrayList getData() {
- return data;
- }
-
- public void setData(ArrayList data) {
- this.data = data;
- }
-
- public static class Bean2 {
- public String name;
- public ArrayList value;
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public ArrayList getValue() {
- return value;
- }
-
- public void setValue(ArrayList value) {
- this.value = value;
- }
-
- @Override
- public String toString() {
- return "Bean2 [name=" + name + ", value=" + value + "]";
- }
-
- }
-
- public static class Bean3 {
- public String name;
- private String value;
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getValue() {
- return value;
- }
-
- public void setValue(String value) {
- this.value = value;
- }
-
- @Override
- public String toString() {
- return "Bean3 [name=" + name + ", value=" + value + "]";
- }
-
- }
- }
-
解析的时候只要一句话:
- Bean s = (Bean) (SumileJson.parse(str, Bean.class));
解析完了,然后来看怎样获得所有的数据:
- Bean s = (Bean) (SumileJson.parse(str, Bean.class));
- System.out.println("Error:" + s.getError());
- System.out.println("data:" + s.getData().toString());
- for (int i = 0; i < s.getData().size(); i++) {
- Bean2 b2 = s.getData().get(i);
- System.out.println("Bean2--->Name:" + b2.getName());
- System.out.println("Bean2--->Value:" + b2.getValue());
- for (int j = 0; j < b2.getValue().size(); j++) {
- Bean3 b3 = b2.getValue().get(j);
- System.out.println("Bean3--->Name:" + b3.getName());
- System.out.println("Bean3--->Value:" + b3.getValue());
- }
- System.out.println();
- }
程序输出的结果:
- Error:0
- data:[Bean2 [name=1, value=[Bean3 [name=2, value=3], Bean3 [name=4, value=5]]], Bean2 [name=6, value=[Bean3 [name=7, value=8], Bean3 [name=9, value=10]]]]
- Bean2--->Name:1
- Bean2--->Value:[Bean3 [name=2, value=3], Bean3 [name=4, value=5]]
- Bean3--->Name:2
- Bean3--->Value:3
- Bean3--->Name:4
- Bean3--->Value:5
-
- Bean2--->Name:6
- Bean2--->Value:[Bean3 [name=7, value=8], Bean3 [name=9, value=10]]
- Bean3--->Name:7
- Bean3--->Value:8
- Bean3--->Name:9
- Bean3--->Value:10
开源地址
我的博客中的原文:sumile
0 0