javaWeb之json的学习

Json:与平台无关,数据传输格式,javascript object noation—js的带有定义的格式的对象.
JSONObject:可把java类型的对象,把数据格式转化成json类型的数据
反射:通过编译后的.class文件,得到此类的属性和方法.
Java–json
java集合–json集合

先定义一个数据类City

public class City {
    private String Ename;
    private String Cname;
    。。。。get set 自己生成
    }

将city实例转换为json格式

 public void objectToJson(){//将city实例转换为json格式
        City city = new City();
        city.setCname("南昌");
        city.setEname("nanchang");
        JSONObject jsonObject = JSONObject.fromObject(city);
        System.out.println(jsonObject);
        System.out.println(jsonObject.toString());

    }

我使用单元测试 运行此方法

单元测试需要导包

<dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>

然后在方法前添加注解
javaWeb之json的学习_第1张图片

运行结果
javaWeb之json的学习_第2张图片

将json字符串转换为对象实例

 public void StringToJson(){//将json字符串转换为对象实例
        String cityStr = "{\"cname\":\"南昌\",\"ename\":\"nanchang\"}";
        JSONObject jsonObject = JSONObject.fromObject(cityStr);
        //反射,得对class  --j.toBean(j,City.class);以City.class的类的形式,去生成一个javaBean--默认都是Object
        City city = (City) JSONObject.toBean(jsonObject,City.class);
        System.out.println(city);
        System.out.println(city.getEname()+city.getCname());
    }

运行结果
javaWeb之json的学习_第3张图片

将list中得数据转换为jsonarray

public void objectsToJsonArr(){//将list中得数据转换为jsonarray
        City city = new City();
        city.setCname("南昌");
        city.setEname("nanchang");
        City city2 = new City();
        city2.setCname("北京");
        city2.setEname("bejing");
        List<City> cityList = new ArrayList<>();
        cityList.add(city);
        cityList.add(city2);
        //通过JSon数组对象,把源数据(java集合),按格式转化成json数组
        JSONArray  jsonArray = JSONArray.fromObject(cityList);
        System.out.println(jsonArray);
        //如果要用字符串的形式来运用
        System.out.println("-----");
        System.out.println(jsonArray.toString());//以字符串的形式
    }

运行结果
javaWeb之json的学习_第4张图片

将多个json数组转化成java集合

public void jsonStrTojsonArr(){//将多个json数组转化成java集合
        String jsonArrStr = "[{\"cname\":\"南昌\",\"ename\":\"nanchang\"},{\"cname\":\"北京\",\"ename\":\"bejing\"}]";
        JSONArray jsonArray = JSONArray.fromObject(jsonArrStr);

        List<City> cityList = (List<City>) JSONArray.toCollection(jsonArray,City.class);
        for (City city:cityList) {
            System.out.println(city.getEname()+city.getCname());
        }
    }

运行结果
javaWeb之json的学习_第5张图片

你可能感兴趣的:(Java,web)