JSON的入门介绍学习

JSON封装数据的几种方式
package com.feture.test;
import com.feture.po.Game;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;

import java.util.*;

public class TestJson {
    public static void main(String[] args) {
        /*
        *   JavaScript Object Notation
        *   JSON
        *   一种轻量级的数据交换格式,2004年诞生,2006年加入
        *   ajax技术体系,用来取代xml封装批量数据,可以在Java服务器端
        *   和Js端同时使用
        *   格式:
        *       1){key1:value1,key2:value2,keyN:valueN}
        *       key:字符串
        *       value:
            *       字符串
            *       八种基本数据类型
            *       null
            *       数组
            *       json
            *
            *   2)[value1,value2,value3,valueN]
            *
            *   value:
            *        字符串
             *       八种基本数据类型
             *       null
             *       数组
             *       json
            *

            封装方式1:可以封装任意数据类型,封装之后呈现第一种
            格式的json
        * */
        String str = "etoak";
        String[] strAr = {"济南","青岛","淄博"};
        boolean flag = true;
        int i = 100;

        JSONObject jo1 = new JSONObject();
        jo1.put("key1",str);
        jo1.put("key2",strAr);
        jo1.put("key3",flag);
        jo1.put("key4",i);
        //{"key1":"etoak","key2":["济南","青岛","淄博"],"key3":true,"key4":100}
        System.out.println(jo1);

        JSONObject jo2 = new JSONObject();
        jo2.put("myGame",new Game(1,"只狼","AVG"));
        //{"myGame":{"name":"只狼","id":1,"type":"AVG"}}
        System.out.println(jo2);

        /*
        *   封装方式2:可以封装自定义数据类型和Map
        *   封装之后呈现第一种格式的json
        * */

        Map<Integer,String> map = new HashMap<Integer,String>();
        map.put(1,"Javascript");
        map.put(2,"jQuery");
        map.put(3,"VUE");
        map.put(4,"Angular");
        map.put(5,"React");

        JSONObject js1 = JSONObject.fromObject(map);
        //{"1":"Javascript","2":"jQuery","3":"VUE","4":"Angular","5":"React"}
        System.out.println(js1);

        JSONObject js2 = JSONObject.fromObject(
        new Game(2,"dota自走棋","slg"));
        //{"name":"dota自走棋","id":2,"type":"slg"}
        System.out.println(js2);

        //对自定义数据类型中的属性进行有选择的封装
        JsonConfig jc = new JsonConfig();
        //设置不需要封装的字段名
        jc.setExcludes(new String[]{"id","type"});
        JSONObject js3 = JSONObject.fromObject(
        new Game(3,"王者荣耀","moba"),jc);
        //{"name":"王者荣耀"}
        System.out.println(js3);

        /*
        *   封装方式3:
        *       可以封装List Set 和 数组
        *       封装之后呈现格式2的json
        * */
        List<String> list = new ArrayList<String>();
        list.add("Iphone");
        list.add("Apple Watch");
        list.add("Air Pods");
        list.add("MacBook");
        list.add("Ipad");
        JSONArray ja1 = JSONArray.fromObject(list);
        //["Iphone","Apple Watch","Air Pods","MacBook","Ipad"]
        System.out.println(ja1);
        JSONArray ja2 = JSONArray.fromObject(strAr);
        //["济南","青岛","淄博"]
        System.out.println(ja2);

        Set<String> set = new HashSet<String>();
        set.add("Java");
        set.add("C");
        set.add("C++");
        set.add("Php");
        set.add("Swift");
        JSONArray ja3 = JSONArray.fromObject(set);
        //["Java","C++","C","Php","Swift"]
        System.out.println(ja3);

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值