Java中fastjson库将Map、JSON、String相互转换

		                                                     Java中fastjson库将Map、JSON、String相互转换
json就是一串字符串 只不过元素会使用特定的符号标注。
 {} 双括号表示对象
 [] 中括号表示数组
 "" 双引号内是属性或值
 : 冒号表示后者是前者的值(这个值可以是字符串、数字、也可以是另一个数组或对象)
 所以 {"name": "Kobe"} 可以理解为是一个包含name为Kobe的对象
 而[{"name": "Michael"},{"name": "Kobe"}]就表示包含两个对象的数组
 JSONArray:相当于List<Object>
 JSONObject:相当于Map<String, Object>
1 public static final Object parse(String text);  // 把JSON文本转换成JSONObject或者JSONArray 
2 public static final JSONObject parseObject(String text); // 把JSON文本转换成JSONObject 
3 public static final JSONArray parseArray(String text);   // 把JSON文本转换成JSONArray 
4 public static final <T> T parseObject(String text, Class<T> clazz);  // 把JSON文本转换成JavaBean
5 public static final <T> List<T> parseArray(String text, Class<T> clazz); //把JSON文本转换成JavaBean集合 

6 public static final String toJSONString(Object object);// 将JavaBean序列化为JSON文本 
7 public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本  

8 public static final Object toJson(Obiect javaObject);//将JavaBean转换为JSONObject或者JSONArray       

Map转JSON

Map转JSON
   		Map<String, Object> map = new HashMap<String, Object>();
        map.put("username", "yaomy");
        map.put("password", "123");
	    JSONObject json = new JSONObject(map);

JSON转String

        JSONObject json = new JSONObject();
        json.put("username", "yaomy");
        json.put("password", "123");

        json.toJSONString();
JSON转Map
       JSONObject json = new JSONObject();
        json.put("username", "yaomy");
        json.put("password", "123");

        Map<String, Object> map = (Map<String, Object>)json;
String转JSON
        String str = "{\"username\":\"yaomy\",\"password\":\"123\"}";
        JSONObject json = JSONObject.parseObject(str);

对象转Json

User user = new User();
user.setId("1");
user.setName("Jerry");
String json = JSON.toJSONString(user);

Json转对象

public class JavaDemo05 {
    public static void main(String[] args) {
        String json = "{\"name\":\"cc\",\"id\":24}";
        User user = JSON.parseObject(json, User.class);
        System.out.println(user);


    }
}

List转Json

List<User> list = new ArrayList<>();
list.add(new User(1,"Jerry"));
list.add(new User(2,"Anne"));
list.add(new User(3,"Jack"));
String json = JSON.toJSONString(list);

格式化日期

public class JavaDemo05 {
    public static void main(String[] args) {
        Date date = new Date();
        System.out.println(date);
        System.out.println(JSON.toJSONString("输出毫秒值:" + date));
        System.out.println(JSON.toJSONString("默认格式:" + date, SerializerFeature.WriteDateUseDateFormat));
        System.out.println("自定义格式:" + JSON.toJSONStringWithDateFormat(date, "yyyy-MM-dd", SerializerFeature.WriteDateUseDateFormat));

    }
}

Fri Oct 09 11:54:11 CST 2020
"输出毫秒值:Fri Oct 09 11:54:11 CST 2020"
"默认格式:Fri Oct 09 11:54:11 CST 2020"
自定义格式:"2020-10-09"

字符数组JSON转化为数组

String s = "[{\"name\":\"aa\",\"id\":10},{\"name\":\"bb\",\"id\":20}]";
        List<User> list =  JSON.parseArray(s,User.class);
        for (User user : list) {
            System.out.println(user);
        }

复杂数据类型

 Map<String,Object> map = new HashMap<>();
        map.put("username","Jerry");
        map.put("age",24);
        map.put("sex","男");
        Map<String,Object> map2 = new HashMap<>();
        map2.put("name","Jack");
        map2.put("age",22);
        map.put("data",map2);

        List<String> list = new ArrayList<>();
        list.add("爬山");
        list.add("骑车");
        list.add("跑步");
        map.put("hobby",list);
        JSONObject jsonObject = new JSONObject(map);
        System.out.println(jsonObject);
{"data":{"name":"Jack","age":22},"sex":"男","age":24,"username":"Jerry","hobby":["爬山","骑车","跑步"]}

String str = "[{'name': 'Jerry','age': '123','id':'12'},{'name': 'Anne','age': '234','id': '456'}]";
   JSONArray jsonArray = JSONArray.parseArray(str);
   for (Object o : jsonArray) {
       JSONObject jsonObject = (JSONObject) o;
       String name = (String) jsonObject.get("name");
       System.out.println("name:" + name);
   }
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值