欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java Bean与json对象间的转换实例讲解

程序员文章站 2023-11-13 16:04:10
java bean与json对象间的转换 /** * 一 json.parseobject() 单个对象 或map 大括号{} * 二 json.parsea...

java bean与json对象间的转换

/**
   * 一 json.parseobject() 单个对象 或map 大括号{}
   * 二 json.parsearray() 多个对象 数组[] 复杂的要在类中定义类
   * 三 json.tojsonstring() javabean与json格式字符串之间的转换
   *
   * 四 javabean与json对象间的转换使用:json.tojson(obj),然后使用强制类型转换,jsonobject或者jsonarray
   */
  @test
  public void testjson(){
    // {"name":"小红", "age":21,"nation":"中国"} 格式要进行格式化"\"
    string jsonperson="{\"name\":\"小红\", \"age\":21,\"nation\":\"中国\"}";
    system.out.println(jsonperson);// {"name":"小红", "age":21,"nation":"中国"}
    string s = json.tojsonstring(jsonperson); // "{\"name\":\"小红\", \"age\":21,\"nation\":\"中国\"}"
    system.out.println(s);
    //[{"text":"内存大小","value":"10m"},{"text":"颜色","value":"红色"}]
    // json转换为对象
    person person = json.parseobject(jsonperson,person.class);
    system.out.println(person);
    system.out.println("=============================================");
    string jsonperson2="[{\"name\":\"小红\", \"age\":21,\"nation\":\"中国\"},{\"name\":\"小红2\", \"age\":31,\"nation\":\"中国2\"}]";
    // person person1 = json.parseobject(jsonperson2, person.class);
    // system.out.println(person1);  // com.alibaba.fastjson.jsonexception: syntax error, expect {, actual [, pos 0
    list<person> personlist = json.parsearray(jsonperson2, person.class);
    system.out.println(personlist);
    system.out.println("==============================================");


string result = "{\n" +
    "  \"success\":\"true\",\n" +
    " \n" +
    "  \"returnaddress\":\"123\"\n" +
    " \n}";
jsonobject jsonobject = json.parseobject(result);
system.out.println(jsonobject);
// {"success":"true","returnaddress":"123"}
map map = json.parseobject(result, map.class);
system.out.println(map);
// {success=true, returnaddress=123}
system.out.println("map取得的值时"+map.get("success"));
// map取得的值时true

system.out.println(jsonobject.tojsonstring());
// {"success":"true","returnaddress":"123"}
map jsonobject1 = (map) json.parseobject(result);
system.out.println(jsonobject1);
// {"success":"true","returnaddress":"123"}
system.out.println("jsonobject1取得的值时"+jsonobject1.get("success"));
// jsonobject1取得的值时true
 } 

// 多重 javabean的方法是遍历

json.parseobject(string str)与jsonobject.parseobject(string str)的区别

根据源码显示:json是一个抽象类,json中有一个静态方法parseobject(string text),将text解析为一个jsonobject对象并返回;jsonobject是一个继承自json的类,当调用jsonobject.parseobject(result)时,会直接调用父类的parseobject(string text)。所以两者没什么区别,一个是用父类去调用父类自己的静态的parseobject(string text),一个是用子类去调用父类的静态parseobject(string text),两者调的是同一个方法。

以上就是本次介绍的全部相关知识点,感谢大家的学习和对的支持。