首页 > 编程语言 >JSON与JAVA数据的转换

JSON与JAVA数据的转换

时间:2023-06-08 17:01:28浏览次数:69  
标签:JSONObject 转换 JSONArray jsonObject bean json JSON new JAVA


JSON与JAVA数据的转换


关键字: json java
JSON-lib这个Java类包用于把bean,map和XML转换成JSON并能够把JSON转回成bean和DynaBean。

下载地址:http://json-lib.sourceforge.net/
还要需要的第3方包:

jakarta commons-lang 2.3 
 
jakarta commons-beanutils 1.7.0 
 
jakarta commons-collections 3.2 
 
jakarta commons-logging 1.1 
 
ezmorph 1.0.1 
 
1、List 
 

Java代码 
 
boolean[] boolArray = new boolean[]{true,false,true};       
 
            JSONArray jsonArray1 = JSONArray.fromObject( boolArray );       
 
            System.out.println( jsonArray1 );       
 
           // prints [true,false,true]      
 
               
 
            List list = new ArrayList();       
 
            list.add( "first" );       
 
            list.add( "second" );       
 
            JSONArray jsonArray2 = JSONArray.fromObject( list );       
 
            System.out.println( jsonArray2 );       
 
           // prints ["first","second"]      
 
   
 
            JSONArray jsonArray3 = JSONArray.fromObject( "['json','is','easy']" );       
 
            System.out.println( jsonArray3 );       
 
           // prints ["json","is","easy"]      
 
boolean[] boolArray = new boolean[]{true,false,true}; 
 
JSONArray jsonArray1 = JSONArray.fromObject( boolArray ); 
 
System.out.println( jsonArray1 ); 
 
// prints [true,false,true] 
 
List list = new ArrayList(); 
 
list.add( "first" ); 
 
list.add( "second" ); 
 
JSONArray jsonArray2 = JSONArray.fromObject( list ); 
 
System.out.println( jsonArray2 ); 
 
// prints ["first","second"] 
 
JSONArray jsonArray3 = JSONArray.fromObject( "['json','is','easy']" ); 
 
System.out.println( jsonArray3 ); 
 
// prints ["json","is","easy"] 
 

2、Map 
 

Java代码 
 
Map map = new HashMap();       
 
          map.put( "name", "json" );       
 
          map.put( "bool", Boolean.TRUE );       
 
             
 
          map.put( "int", new Integer(1) );       
 
          map.put( "arr", new String[]{"a","b"} );       
 
          map.put( "func", "function(i){ return this.arr[i]; }" );       
 
          JSONObject json = JSONObject.fromObject( map );       
 
          System.out.println( json );       
 
         //{"func":function(i){ return this.arr[i]; },"arr":["a","b"],"int":1,"name":"json","bool":true}   
 
Map map = new HashMap(); 
 
map.put( "name", "json" ); 
 
map.put( "bool", Boolean.TRUE ); 
 
map.put( "int", new Integer(1) ); 
 
map.put( "arr", new String[]{"a","b"} ); 
 
map.put( "func", "function(i){ return this.arr[i]; }" ); 
 
JSONObject json = JSONObject.fromObject( map ); 
 
System.out.println( json ); 
 
//{"func":function(i){ return this.arr[i]; },"arr":["a","b"],"int":1,"name":"json","bool":true} 
 

3、BEAN 
 

Java代码 
 
/** 
 
      * Bean.java 
 
         private String name = "json";    
 
         private int pojoId = 1;    
 
         private char[] options = new char[]{'a','f'};    
 
         private String func1 = "function(i){ return this.options[i]; }";    
 
         private JSONFunction func2 = new JSONFunction(new String[]{"i"},"return this.options[i];"); 
 
     */    
 
JSONObject jsonObject = JSONObject.fromObject( new JsonBean() );       
 
System.out.println( jsonObject );       
 
//{"func1":function(i){ return this.options[i]; },"pojoId":1,"name":"json","options":["a","f"],"func2":function(i){ return this.options[i]; }}     
 
/** 
 
* Bean.java 
 
private String name = "json"; 
 
private int pojoId = 1; 
 
private char[] options = new char[]{'a','f'}; 
 
private String func1 = "function(i){ return this.options[i]; }"; 
 
private JSONFunction func2 = new JSONFunction(new String[]{"i"},"return this.options[i];"); 
 
*/ 
 
JSONObject jsonObject = JSONObject.fromObject( new JsonBean() ); 
 
System.out.println( jsonObject ); 
 
//{"func1":function(i){ return this.options[i]; },"pojoId":1,"name":"json","options":["a","f"],"func2":function(i){ return this.options[i]; }} 
 

4、BEANS 
 

Java代码 
 
/** 
 
       * private int row ; 
 
           private int col ; 
 
           private String value ; 
 
       * 
 
       */   
 
List list = new ArrayList();    
 
          JsonBean2 jb1 = new JsonBean2();    
 
          jb1.setCol(1);    
 
          jb1.setRow(1);    
 
          jb1.setValue("xx");    
 
             
 
          JsonBean2 jb2 = new JsonBean2();    
 
          jb2.setCol(2);    
 
          jb2.setRow(2);    
 
          jb2.setValue("");    
 
             
 
             
 
          list.add(jb1);    
 
          list.add(jb2);    
 
             
 
          JSONArray ja = JSONArray.fromObject(list);    
 
          System.out.println( ja.toString() );    
 
         //[{"value":"xx","row":1,"col":1},{"value":"","row":2,"col":2}]   
 
/** 
 
* private int row ; 
 
private int col ; 
 
private String value ; 
 
* 
 
*/ 
 
List list = new ArrayList(); 
 
JsonBean2 jb1 = new JsonBean2(); 
 
jb1.setCol(1); 
 
jb1.setRow(1); 
 
jb1.setValue("xx"); 
 
JsonBean2 jb2 = new JsonBean2(); 
 
jb2.setCol(2); 
 
jb2.setRow(2); 
 
jb2.setValue(""); 
 
list.add(jb1); 
 
list.add(jb2); 
 
JSONArray ja = JSONArray.fromObject(list); 
 
System.out.println( ja.toString() ); 
 
//[{"value":"xx","row":1,"col":1},{"value":"","row":2,"col":2}] 
 

5、String to bean 
 

Java代码 
 
String json = "{name=\"json\",bool:true,int:1,double:2.2,func:function(a){ return a; },array:[1,2]}";       
 
JSONObject jsonObject = JSONObject.fromString(json);       
 
Object bean = JSONObject.toBean( jsonObject );       
 
assertEquals( jsonObject.get( "name" ), PropertyUtils.getProperty( bean, "name" ) );       
 
   assertEquals( jsonObject.get( "bool" ), PropertyUtils.getProperty( bean, "bool" ) );       
 
   assertEquals( jsonObject.get( "int" ), PropertyUtils.getProperty( bean, "int" ) );       
 
    assertEquals( jsonObject.get( "double" ), PropertyUtils.getProperty( bean, "double" ) );       
 
    assertEquals( jsonObject.get( "func" ), PropertyUtils.getProperty( bean, "func" ) );       
 
   List expected = JSONArray.toList( jsonObject.getJSONArray( "array" ) );       
 
   assertEquals( expected, (List) PropertyUtils.getProperty( bean, "array" ) );     
 
String json = "{name=\"json\",bool:true,int:1,double:2.2,func:function(a){ return a; },array:[1,2]}"; 
 
JSONObject jsonObject = JSONObject.fromString(json); 
 
Object bean = JSONObject.toBean( jsonObject ); 
 
assertEquals( jsonObject.get( "name" ), PropertyUtils.getProperty( bean, "name" ) ); 
 
assertEquals( jsonObject.get( "bool" ), PropertyUtils.getProperty( bean, "bool" ) ); 
 
assertEquals( jsonObject.get( "int" ), PropertyUtils.getProperty( bean, "int" ) ); 
 
assertEquals( jsonObject.get( "double" ), PropertyUtils.getProperty( bean, "double" ) ); 
 
assertEquals( jsonObject.get( "func" ), PropertyUtils.getProperty( bean, "func" ) ); 
 
List expected = JSONArray.toList( jsonObject.getJSONArray( "array" ) ); 
 
assertEquals( expected, (List) PropertyUtils.getProperty( bean, "array" ) ); 
 



Java代码 
 
String json = "{\"value\":\"xx\",\"row\":1,\"col\":1}";       
 
JSONObject jsonObject = JSONObject.fromString(json);    
 
   JsonBean2 bean = (JsonBean2) JSONObject.toBean( jsonObject, JsonBean2.class );       
 
    assertEquals( jsonObject.get( "col" ),new Integer( bean.getCol())   );       
 
      assertEquals( jsonObject.get( "row" ), new Integer( bean.getRow() ) );       
 
      assertEquals( jsonObject.get( "value" ), bean.getValue() );     
 
String json = "{\"value\":\"xx\",\"row\":1,\"col\":1}"; 
 
JSONObject jsonObject = JSONObject.fromString(json); 
 
JsonBean2 bean = (JsonBean2) JSONObject.toBean( jsonObject, JsonBean2.class ); 
 
assertEquals( jsonObject.get( "col" ),new Integer( bean.getCol())  ); 
 
assertEquals( jsonObject.get( "row" ), new Integer( bean.getRow() ) ); 
 
assertEquals( jsonObject.get( "value" ), bean.getValue() ); 
 


6 json to xml 
 
1) 
 
JSONObject json = new JSONObject( true ); 
 
String xml = XMLSerializer.write( json ); 
 

<o class="object" null="true"> 
 

2) 
 
JSONObject json = JSONObject.fromObject("{\"name\":\"json\",\"bool\":true,\"int\":1}"); 
 
String xml = XMLSerializer.write( json ); 
 
<o class="object"> 
 
<name type="string">json</name> 
 
<bool type="boolean">true</bool> 
 
<int type="number">1</int> 
 
</o> 
 
<o class="object"> 
 
<name type="string">json</name> 
 
<bool type="boolean">true</bool> 
 
<int type="number">1</int> 
 
</o> 
 
3) 
 
JSONArray json = JSONArray.fromObject("[1,2,3]"); 
 
String xml = XMLSerializer.write( json ); 
 
<a class="array"> 
 
<e type="number">1</e> 
 
<e type="number">2</e> 
 
<e type="number">3</e> 
 
</a> 
 

7 、xml to json 
 
<a class="array"> 
 
<e type="function" params="i,j"> 
 
return matrix[i][j]; 
 
</e> 
 
</a> 
 
<a class="array"> 
 
<e type="function" params="i,j"> 
 
return matrix[i][j]; 
 
</e> 
 
</a> 
 

JSONArray json = (JSONArray) XMLSerializer.read( xml ); 
 
System.out.println( json ); 
 
// prints [function(i,j){ return matrix[i][j]; }]

标签:JSONObject,转换,JSONArray,jsonObject,bean,json,JSON,new,JAVA
From: https://blog.51cto.com/u_16085616/6441504

相关文章

  • 前端进化笔记-JavaScript(三)
    人类在白色的底色上描绘图画,地球在黑色的底色上创造生命。变量、作用域与内存JavaScript的变量可以说是独树一帜。只需要一个(或两个等)关键字(const,let)就可以创建变量,创建时不考虑变量的类型,这是其他语言少有的强大功能。当然强大的功能总是伴随着问题。值原始值:Undefined,Null......
  • Javascript常用正则表达式集合
    1.匹配正整数:/^[0-9]*[1-9][0-9]*$/2.匹配非负整数(正整数+0):/^\d+$/3.匹配中文:/^[\u4e00-\u9fa5]/4.匹配Email:/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/5.匹配网址URL:/^(f|ht){1}(tp|tps):\/\/([\w-]+\.)+[\w-]+(\/[\w-./?%&=]*)?/6......
  • java jxl创建/读取/修改Excel 操作Excel
    创建Excelpackagetest1;importjava.io.File;importjava.io.IOException;importjxl.Workbook;importjxl.write.Label;importjxl.write.WritableSheet;importjxl.write.WritableWorkbook;importjxl.write.WriteException;importjxl.writ......
  • 小治同学的JAVAWEB学习笔记-Junit&反射&注解
    Junit单元测试Junit使用:白盒测试 步骤 1.定义一个测试类(测试用类) 建议: 测试类名:北侧是的类+Test 包名:XXX.XXX.XX.Test 2.定义测试方法:可以独立运行 建议: 方法名:test测试的方法名 返回值void 参数列表空参 3.给方法加@Test 判定结果 1.红......
  • java Comparator.comparing 排序异常
    今天在Java中使用 Comparator.comparing方法排序时遇到一个异常,明明已经使用了Comparator.comparing从小到大排序,但是1-10以内的顺序还好,>10的时候排序就乱了代码如下:List<MyRouteLongitudeAndLatitudeVo>collectVos=myRouteLongitudeAndLatitudeVos......
  • 【C#】JSON转DataTable存入数据库
    由于JSON直接转DataTable可能会存在类型丢失如下:采用读取数据库表字段类型构建DataTable///<summary>///JSON转DataTale存入数据库///</summary>///<paramname="json"></param>publicstaticvoidJsonDataTableTest(stringjson){stringsql=strin......
  • .net core 因路径原因导致的JSON解析错误
    因解析json配置文件导致的错误:JsonReaderException:'0xEF'isaninvalidescapablecharacterwithinaJSONstring.Thestringshouldbecorrectlyescaped.LineNumber如何解决?{  "path":"D:\工作资料\技术资料"}改为{   "path":"D:......
  • nodejs package.json
    package.json是用来识别项目并且处理项目的依赖关系的{"name":"名",//包名字"version":"1.0.0",//版本"description":"描述","main":"index.js",//入口文件"scripts":{//指定运行脚本......
  • 详解驱动开发中内核PE结构VA与FOA转换
    摘要:本文将探索内核中解析PE文件的相关内容。本文分享自华为云社区《驱动开发:内核PE结构VA与FOA转换》,作者:LyShark。本章将探索内核中解析PE文件的相关内容,PE文件中FOA与VA、RVA之间的转换也是很重要的,所谓的FOA是文件中的地址,VA则是内存装入后的虚拟地址,RVA是内存基址与当前......
  • Java并发
    本系列参考自Java面试小抄以及黑马程序员线程创建创建线程的方式Runnable或Callable接口。新建类时实现Runnable接口,然后在Thread类的构造函数中传入MyRunnable的实例对象,最后执行start()方法。继承Thread类,重写run()lambda精简代码:Runnable接口中只有一个抽象化方法且被@Fu......