fastjson——如何处理反斜杠

- fastjson 常用静态方法-


[java]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray 
    public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject    
    public static final <T> T parseObject(String text, Class<T> clazz); // 把JSON文本parse为JavaBean 
    public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray 
    public static final <T> List<T> parseArray(String text, Class<T> clazz); //把JSON文本parse成JavaBean集合 
    public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本 
    public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本 
    public static final Object toJSON(Object javaObject); 将JavaBean转换为JSONObject或者JSONArray。

- fastjson  处理web前台json序列化字符串带反斜杠 -

[java]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. import java.util.ArrayList;  
  2. import java.util.List;  
  3.   
  4. import com.alibaba.fastjson.JSONObject;  
  5.   
  6. public class Main {  
  7.     public static void main(String[] argv) throws Exception {  
  8.         List<A> a = new ArrayList<A>() ;  
  9.         a.add(new A("1"1)) ;  
  10.         a.add(new A("2"2)) ;  
  11.         a.add(new A("3"3)) ;  
  12. //直接返回对象就不会有反斜杠。。
  13.         Object o = JSONObject.toJSON(a) ;  
  14.         System.out.println(o) ;  
  15.     }  
  16. }  
  17.   
  18.   
  19.   
  20. class A{  
  21.     String name ;  
  22.     Integer age ;   
  23.     A(String name , Integer age){  
  24.         this.name = name ;  
  25.         this.age = age ;  
  26.     }  
  27.     public String getName() {  
  28.         return name;  
  29.     }  
  30.     public void setName(String name) {  
  31.         this.name = name;  
  32.     }  
  33.     public Integer getAge() {  
  34.         return age;  
  35.     }  
  36.     public void setAge(Integer age) {  
  37.         this.age = age;  
  38.     }  
  39.       
  40. }  

Object返回的字符串不会出现反斜杠[{"age":1,"name":"1"},{"age":2,"name":"2"},{"age":3,"name":"3"}]。



当涉及到复杂对象的反序列化时,Fastjson同样提供了相应的方法来处理。复杂对象通常包含嵌套的对象、集合或数组。下面是一个示例代码,演示了如何使用Fastjson进行复杂对象的反序列化: ```java import com.alibaba.fastjson.JSON; public class FastjsonDemo { public static void main(String[] args) { String jsonStr = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\",\"pets\":[{\"name\":\"Tom\",\"age\":2},{\"name\":\"Jerry\",\"age\":1}]}"; // 反序列化 Person person = JSON.parseObject(jsonStr, Person.class); System.out.println(person.getName()); // 输出:John System.out.println(person.getAge()); // 输出:30 System.out.println(person.getCity()); // 输出:New York for (Pet pet : person.getPets()) { System.out.println(pet.getName()); // 输出:Tom,Jerry System.out.println(pet.getAge()); // 输出:2,1 } } } class Person { private String name; private int age; private String city; private List<Pet> pets; // 省略构造器、getter和setter方法 } class Pet { private String name; private int age; // 省略构造器、getter和setter方法 } ``` 在上面的示例中,我们将一个包含嵌套对象的JSON字符串反序列化为一个Person对象。Person类中包含了一个List类型的pets字段,pets字段是一个包含了多个Pet对象的集合。通过调用`JSON.parseObject()`方法,Fastjson会自动将JSON字符串中的嵌套对象转换为相应的Java对象。 需要注意的是,Fastjson处理嵌套对象时需要保证嵌套对象的类结构与JSON字符串的结构相匹配,即字段名和类型要一致。否则,可以使用`@JSONField`注解来进行映射或者使用`TypeReference`类来处理复杂泛型类型。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值