FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换

1.将字符串转为JSON

使用JSONObject.fromObject(str)方法即可将字符串转为JSON对象

使用JSONObject.put(“attribute”,“value”)可为JSON添加属性

如果需要转为JSON数组,只需使用JSONArray对象提供的方法即可

/**

  • 一些简单的转换
    */
    public static void transformStringTest() {
    String str = “{” + ““id”:” + ““1”,” + ““name”:” + ““zhangsan””
    + “}”;
    //1.将字符串转为JSON
    JSONObject jsonObj = JSONObject.fromObject(str);
    System.out.println(jsonObj.toString());
    //JSON添加属性
    jsonObj.put(“age”, “22”);
    System.out.println(jsonObj.toString());
    //2.将对象转为数组
    JSONArray jsonArr = JSONArray.fromObject(jsonObj);
    System.out.println(jsonArr.toString());
    //3.将数组添加到JSON对象中
    JSONObject obj = new JSONObject();
    obj.put(“employees”, jsonArr);
    System.out.println(obj.toString());
    }

/* 输出内容

  • {“id”:“1”,“name”:“zhangsan”}
  • {“id”:“1”,“name”:“zhangsan”,“age”:“22”}
  • [{“id”:“1”,“name”:“zhangsan”,“age”:“22”}]
  • {“employees”:[{“id”:“1”,“name”:“zhangsan”,“age”:“22”}]}
    */

2.将对象转为JSON

首先创建People类

public class People {
private String name;

private String idcard;  

public People() {  
}  

public People(String name, String idcard) {  
    this.name = name;  
    this.idcard = idcard;  
}  

public String getName() {  
    return name;  
}  

public void setName(String name) {  
    this.name = name;  
}  

public String getIdcard() {  
    return idcard;  
}  

public void setIdcard(String idcard) {  
    this.idcard = idcard;  
}  

}

将对象转为JSON同样使用SONObject.fromObject(obj)方法

如果是一个List,转为JSON时需要使用JSONArray将对象转为JSON数组

public static void transformObjectTest() {
People p1 = new People(“a”, “111111”);
//1.将对象转为json
System.out.println(JSONObject.fromObject(p1));
List peopleList = new ArrayList();
peopleList.add(p1);
//2.将list转为json(需要使用数组JSONArray)
JSONArray arr = JSONArray.fromObject(peopleList);
System.out.println(arr.toString());
}

/*输出内容
* {“idcard”:“111111”,“name”:“a”}
* [{“idcard”:“111111”,“name”:“a”}]
*/

3.JSON转为bean

json转为bean的方法也非常简单,只需使用JSONObject.toBean()方法即可,使用该方法的时候需要传入Bean的class
/**
* 将json转换为bean
* @param json
* @param type
* @return
*/
public static Object transformJsonToBean(String json, Class type) {
JSONObject jsonObject = JSONObject.fromObject(json);
return JSONObject.toBean(jsonObject, type);
}
4.JSON转为list集合

由于是集合,所以需要使用JSONArray,JSONArray提供了toCollection方法,使用该方法同样需要传入bean的class
/**

  • 项目名称:tools
  • 项目包名:com.songfayuantools.json
  • 创建时间:2017年7月31日上午11:58:51
  • 创建者:Administrator-宋发元
  • 创建地点:
    */
    package com.songfayuantools.json;

import com.songfayuantools.entity.UserInfo;

import net.sf.json.JSON;
import net.sf.json.JSONObject;
import net.sf.json.xml.XMLSerializer;

/**

  • 描述:JSONObject使用方法详解

  • JSONObject-lib包是一个beans,collections,maps,java arrays和xml和JSON互相转换的包。  
    
  • @author songfayuan

  • 2017年7月31日上午11:58:51
    */
    public class Json {

    /**

    • 描述:json字符串转java代码
    • @author songfayuan
    • 2017年8月2日下午2:24:47
      */
      public static void jsonToJava() {
      System.out.println(“json字符串转java代码”);
      String jsonStr = “{“password”:“123456”,“username”:“张三”}”;
      JSONObject jsonObject = JSONObject.fromObject(jsonStr);
      String username = jsonObject.getString(“username”);
      String password = jsonObject.getString(“password”);
      System.err.println(“json—>java \n username=”+username+“\t passwor=”+password);
      }

    /**

    • 描述:java代码封装为json字符串
    • @author songfayuan
    • 2017年8月2日下午2:30:58
      */
      public static void javaToJSON() {
      System.out.println(“java代码封装为json字符串”);
      JSONObject jsonObject = new JSONObject();
      jsonObject.put(“username”, “宋发元”);
      jsonObject.put(“age”, 24);
      jsonObject.put(“sex”, “男”);
      System.out.println("java—>json \n " + jsonObject.toString());
      }

    /**

    • 描述:json字符串转xml字符串
    • @author songfayuan
    • 2017年8月2日下午2:56:30
      */
      public static void jsonToXML() {
      System.out.println(“json字符串转xml字符串”);
      String jsonStr = “{“username”:“宋发元”,“password”:“123456”,“age”:“24”}”;
      JSONObject jsonObject = JSONObject.fromObject(jsonStr);
      XMLSerializer xmlSerializer = new XMLSerializer();
      xmlSerializer.setRootName(“user_info”);
      xmlSerializer.setTypeHintsEnabled(false);
      String xml = xmlSerializer.write(jsonObject);
      System.out.println(“json—>xml \n” + xml);
      }

    /**

    • 描述:xml字符串转json字符串
    • @author songfayuan
    • 2017年8月2日下午3:19:25
      */
      public static void xmlToJSON() {
      System.out.println(“xml字符串转json字符串”);
      String xml = “<?xml version=\"1.0\" encoding=\"UTF-8\"?><user_info>123456宋发元</user_info>”;
      XMLSerializer xmlSerializer = new XMLSerializer();
      JSON json = xmlSerializer.read(xml);
      System.out.println(“xml—>json \n” + json.toString());
      }

    /**

    • 描述:javaBean转json字符串
    • @author songfayuan
    • 2017年8月2日下午3:39:10
      */
      public static void javaBeanToJSON() {
      System.out.println(“javaBean转json字符串”);
      UserInfo userInfo = new UserInfo();
      userInfo.setUsername(“宋发元”);
      userInfo.setPassword(“123456”);
      JSONObject jsonObject = JSONObject.fromObject(userInfo);
      System.out.println(“JavaBean–>json \n” + jsonObject.toString());
      }

    /**

    • 描述:javaBean转xml字符串
    • @author songfayuan
    • 2017年8月2日下午3:48:08
      */
      public static void javaBeanToXML() {
      System.out.println(“javaBean转xml字符串”);
      UserInfo userInfo = new UserInfo();
      userInfo.setUsername(“songfayuan”);
      userInfo.setPassword(“66666”);
      JSONObject jsonObject = JSONObject.fromObject(userInfo);
      XMLSerializer xmlSerializer = new XMLSerializer();
      String xml = xmlSerializer.write(jsonObject, “UTF-8”);
      System.out.println(“javaBean—>xml \n” + xml);
      }

    public static void main(String args[]) {
    // jsonToJava();
    // javaToJSON();
    // jsonToXML();
    // xmlToJSON();
    // javaBeanToJSON();
    javaBeanToXML();
    }

}

  • 12
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
fastjson是一款高性能的Java JSON处理器,它提供了很多功能实现JSON字符串Java对象转换。复杂JSON格式字符串转换JavaBean对象时,需要按照以下的方法进行操作: 首先,我们需要创建一个JavaBean类,属性需要与对应的JSON格式相匹配,可以使用注解或者getter、setter方法来指定属性名。如下面的代码片段所示,我们创建了一个User类。 ```java public class User { private String name; private int age; private List<Address> addressList; // getter、setter、toString方法省略 } ``` 在User类中,我们定义了与JSON格式相对应的属性,其中addressList是一个List类型,它的元素是Address类型,如下所示: ```java public class Address { private String city; private String street; private String zipCode; // getter、setter、toString方法省略 } ``` 接着,我们可以使用fastjson提供的工具类JSON.parseObject()方法将JSON格式字符串转换JavaBean对象。如下所示: ```java String jsonStr = "{\"name\":\"Tom\",\"age\":18,\"addressList\":[{\"city\":\"beijing\",\"street\":\"chaoyang\",\"zipCode\":\"100000\"},{\"city\":\"shanghai\",\"street\":\"pudong\",\"zipCode\":\"200000\"}]}"; User user = JSON.parseObject(jsonStr, User.class); ``` 在上面的代码中,我们首先定义了一个JSON格式字符串,然后使用JSON.parseObject()方法将其转换为User对象。在这个方法的第一个参数中,我们需要传入JSON格式字符串,第二个参数是目标JavaBean的类型。fastjson会自动将JSON字符串中的属性值赋值给JavaBean对象中的对应属性。如果JSON格式字符串中的属性名称与JavaBean中的属性名称不匹配,我们需要在JavaBean中使用@JSONField注解或者getter、setter方法指定对应的属性名。 在将JavaBean对象转换JSON格式字符串时,我们可以使用fastjson提供的工具类JSON.toJSONString()方法。如下所示: ```java String jsonUser = JSON.toJSONString(user); ``` 在上面的代码中,我们将User对象转换JSON格式字符串。 总结来说,通过fastjson将复杂JSON格式字符串转换JavaBean对象需要创建对应的JavaBean类,然后使用JSON.parseObject()方法将JSON字符串转换JavaBean对象。如果需要将JavaBean对象转换JSON字符串,我们可以使用JSON.toJSONString()方法实现。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bug 搬运工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值