json与java数据的相互转换

令狐る侠      2022-02-11     696

关键词:

import net.sf.json.JSONArray;
import net.sf.json.JSONException;
import net.sf.json.JSONObject;
import net.sf.json.JSONSerializer;


/**
* json对象转换为java对象
*
* @throws JSONException
*/
@Test
public void jsonToJava(){
String json="[{"addTime":"2011-09-19 14:23:02","iccid":"1111","id":0,"imei":"2222","imsi":"3333","phoneType":"4444","remark":"aaaa","tel":"5555"}]";
//接收{}对象,此处接收数组对象会有异常
if(json.indexOf("[")!=-1){
json=json.replace("[", "");
}
if(json.indexOf("]")!=-1){
json=json.replace("]", "");
}
JSONObject obj=new JSONObject().fromObject(json);
SimInfo simInfo=(SimInfo)JSONObject.toBean(obj, SimInfo.class);
System.out.println("obj: "+simInfo);
System.out.println(simInfo.getAddTime());
System.out.println(simInfo.getIccid());
System.out.println(simInfo.getImei());
System.out.println(simInfo.getImsi());
System.out.println(simInfo.getPhoneType());
System.out.println(simInfo.getRemark());
System.out.println(simInfo.getTel());
System.out.println(simInfo.getId());

DaoFactory.getSimInfoDao().add(simInfo);
}

/**
* 将json转换为java集合对象
*/
@Test
public void jsonToJavas(){
String jsons="[{"addTime":"2011-09-19 14:23:02","iccid":"1111","id":0,"imei":"2222","imsi":"3333","phoneType":"4444","remark":"aaaa","tel":"5555"}," +
"{"addTime":"2011-11-11 14:23:02","iccid":"2222","id":0,"imei":"2222","imsi":"3333","phoneType":"4444","remark":"aaaa","tel":"5555"}]";
List<SimInfo> simInfos = getJavaCollection(new SimInfo(),jsons);
System.out.println(simInfos.size());
for(SimInfo simInfo:simInfos){
System.out.println("addTime: "+simInfo.getAddTime());
System.out.println("=========");
}

}

/**
* 封装将json对象转换为java集合对象
*
* @param <T>
* @param clazz
* @param jsons
* @return
*/
private <T> List<T> getJavaCollection(T clazz, String jsons) {
List<T> objs=null;
JSONArray jsonArray=(JSONArray)JSONSerializer.toJSON(jsons);
if(jsonArray!=null){
objs=new ArrayList<T>();
List list=(List)JSONSerializer.toJava(jsonArray);
for(Object o:list){
JSONObject jsonObject=JSONObject.fromObject(o);
T obj=(T)JSONObject.toBean(jsonObject, clazz.getClass());
objs.add(obj);
}
}
return objs;
}

/**
* java对象转换为json对象
*
* @throws JSONException
*/
@Test
public void javaToJson(){
SimInfo simInfo=new SimInfo();
simInfo.setAddTime(UtilTool.dateToStr(new Date(), null));
simInfo.setIccid("1111");
simInfo.setImei("2222");
simInfo.setImsi("3333");
simInfo.setPhoneType(4);
simInfo.setRemark("aaaa");
simInfo.setTel("5555");
//java对象转换为json对象
String json=new JSONArray().fromObject(simInfo).toString();
//json: [{"addTime":"2011-09-19 14:23:02","iccid":"1111","id":0,"imei":"2222","imsi":"3333","phoneType":"4444","remark":"aaaa","tel":"5555"}]
System.out.println("json: "+json);
}
 


         jackson-core-asl-1.7.2.jar   

         jackson-mapper-asl-1.7.2.jar

            //将一个Java对象转换成JSON
StringWriter writer = new StringWriter();
ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(writer, simInfo);
String json=writer.toString();

           

   基于json-lib.jar包Json实例程序

1.JSONObject to DynaBean
String json = "{name="json",bool:true,int:1,double:2.2}";
JSONObject jsonObject = JSONObject.fromObject(json);
//抽象的写法:DynaBean bean = (DynaBean) JSONSerializer.toJava( jsonObject );
Object bean = JSONObject.toBean(jsonObject);
//Object bean1 = JSONSerializer.toJava(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"));

2.JSONObject to JavaBean
String json = "{name:"zhangsan",age:25,hight:1.72,sex:true}";
JSONObject jsonObject = JSONObject.fromObject(json);
UserBean bean = (UserBean) JSONObject.toBean(jsonObject, UserBean.class);
System.out.println(jsonObject);
理论上,这样就可以了,但时,有异常Caused by: java.lang.NoSuchMethodException: com.json.Json$UserBean.<init>()
             
3.JSONArray to List
String json = "["first","second"]";
JSONArray jsonArray = (JSONArray) JSONSerializer.toJSON(json);
List output = (List) JSONSerializer.toJava(jsonArray);

4.JSONArray to array
String json = "["first","second"]";
JSONArray jsonArray = (JSONArray) JSONSerializer.toJSON(json);
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setArrayMode(JsonConfig.MODE_OBJECT_ARRAY);
Object[] output = (Object[]) JSONSerializer.toJava(jsonArray, jsonConfig);
Object[] expected = new Object[] { "first", "second" };
ArrayAssertions.assertEquals(expected, output);

5.JSON 字符串 专为 JavaBean(刘慧斌demo 演示需要的jar包在附件里)

String str="[{"id":"328","mestype":"inbox"},{"id":"327","mestype":"inbox"},{"id":"279","mestype":"already"},{"id":"278","mestype":"already"},{"id":"277","mestype":"already"},{"id":"310","mestype":"inbox"},{"id":"308","mestype":"inbox"},{"id":"305","mestype":"inbox"},{"id":"304","mestype":"inbox"},{"id":"303","mestype":"inbox"}]";
JSONArray jsonArray=(JSONArray) JSONSerializer.toJSON(str);
List list=(List)JSONSerializer.toJava(jsonArray);
for (Object obj: list) {
JSONObject jsonObject = JSONObject.fromObject(obj);
MessageBean bean = (MessageBean) JSONObject.toBean(jsonObject, MessageBean.class);
String id=bean.getId()+"";
String type=bean.getMestype();
System.out.println(id+" "+type);
}
System.out.println(list.size());

 















































































































































json字符串与json对象的相互转换

...cript对象表示法(JavaScriptObjectNotation)JSON是轻量级的文本数据交换格式JSON独立于语言*JSON具有自我描述性,更易理解*JSON使用JavaScript语法来描述数据对象,但是JSON仍然独立于语言和平台。JSON解析器和JSON库支持许多不同的编程语... 查看详情

java对象数据与json对象数据之间的相互转换(fastjson)(代码片段)

Java对象或集合数据与JSON格式数据之间的转换1、JSON是什么2、JSON数据格式对照3、主流JSON库对比3.1、json-lib【不推荐使用】3.2、Jackson【根据场景使用】3.3、Gson【根据场景使用】3.4、FastJson【根据场景使用】4、FastJson常用的JSON格式... 查看详情

abap内表数据与json串相互转换

DATA:json_serTYPEREFTOCL_TREX_JSON_SERIALIZER,json_desTYPEREFTOCL_TREX_JSON_DESERIALIZER.DATA:jsonstrTYPEstring.CREATEOBJECTjson_serEXPORTINGdata=itab[].CALLMETHODjson_ser->SERIALIZE.CALLMETHODjson 查看详情

javascriptjson字符串与对象相互转换

...函数:JSON.stringify()和JSON.parse()。  使用ajax向后台请求数据,后台给前端返回数据,明明后端脚本写的是json函数处理后的json格式,但是前端接收数据时,却时而是object,时而是字符串,令人百思不得其解。具体原因我还不是... 查看详情

java中xml与json的相互转换

/*xom-1.1.jar json 与 xml的相互转换*/  /**     * JSON(数组)字符串转换成XML字符串     * (必须引入 xom-1.1.jar)    &n 查看详情

list与json的相互转换

List与Json的相互转换,需要使用到6个jar包,如果不引用这些jar包,需要写的代码量比较多,这里暂时记录的是使用jar包来进行转换的情况。下面图片是测试demo的结构,仅供参考,需要注意jar包的版本问题。  其中Test.java中... 查看详情

json与avro数据文件的相互转换(代码片段)

嵌套的JSON数据与AVRO文件的相互转换JSON是一种常用的数据交换格式,很多系统都会使用JSON作为数据接口返回的数据格式,然而,由于JSON数据中包含大量的字段名字,导致空间的严重浪费,尤其是数据文件较大... 查看详情

python对象与json相互转换的方法

在网络通信中,json是一种常用的数据格式,对于python来讲,将类转化为json数据以及将json数据转化为对象是一件非常容易的事情。下面给出两者转化的方法?12345678910111213141516171819202122232425262728293031323334353637#-*-coding:UTF-8-*-importjson&... 查看详情

javascript-问题集-含function的json对象与json字符串之间相互转换

基本的转换为:JSON.parse与JSON.stringify。但是json数据中含function,则转换后,function会丢失,如:varjson={test:‘test‘,login:function(){alert("login")}} 经JSON.stringify后,login丢失。varjson={test:‘test‘}JSON.parse,结果一样。正确处理方法: 查看详情

java实现xml与json相互转换

原文地址https://blog.csdn.net/congcong68/article/details/39029907在工作中,经常碰到XML转为JSON或者JSON转为XML,在这过程中有时嵌套很多层,容易错误,我把实现的代码分享出来,希望对有用到的人提供借鉴。     1.把XML... 查看详情

json与datatable相互转换

首先我们看看 Newtonsoft.Json.JsonConvert是怎么完成的:DataTabletable=newDataTable();table.Columns.Add("id");table.Columns.Add("name");table.Columns.Add("url");table.Rows.Add("1","zhengdjin","http://blog.csdn. 查看详情

json对象与字符串之间的相互转换

<html><head><metaname="viewport"content="width=device-width"/><title>JSON对象与字符串之间的相互转换</title><scriptsrc="~/Js/jquery-1.8.0.js"></script><script>varuser 查看详情

geojson的生成与解析,json解析,java读写geojson,geotools读取shp文件,geotools中geometry对象与geojson的相互转换(代码片段)

...的geometry转成json格式二、json格式转wkt格式三、json格式的数据进行解析四、Java读写geojson五、geotools读取shp文件5.1pom.xml5.2读取shp文件六、Geotools中Geometry对象与GeoJson的相互转换6.1pom.xmlimport包6.2LineString–>geojson6.3geo 查看详情

json对象与字符串的相互转换,数组和字符串的转换

1.json对象转换为字符串JSON.stringify(value[,replacer][,space]) varstudent=newObject();student.id="001";student.name="程陈";student.age="18";varstr=JSON.stringify(student);//{"id":"001","name":"程陈","age":"1 查看详情

c#对象与json字符串的相互转换

程序使用.NETFramework提供的JavaScriptSerializer类进行序列化和反序列化操作,需要引用.NETFramework中的System.Web.Extensions程序集。对于直接进行DataTable类型对象的转换会出现“序列化类型为“System.Reflection.RuntimeModule”的对象时检测到循... 查看详情

数据集和json相互转换

使用DELPHI原生类实现数据集和JSON相互转换JSON二要素:数组和对象。对象可以包含数组,数组可以包含对象。无层数限制。OLEVARIANT也类似,OLEVARIANT的一个元素又可以是OLEVARIANT,且无层数限制。XML亦类似。这也是它们能序列一切... 查看详情

数据集和json相互转换

使用DELPHI原生类实现数据集和JSON相互转换 JSON二要素:数组和对象。对象可以包含数组,数组可以包含对象。无层数限制。OLEVARIANT也类似,OLEVARIANT的一个元素又可以是OLEVARIANT,且无层数限制。XML亦类似。这也是它们能序列... 查看详情

mui:字符串和json数据的相互转换

JSON.parse()--字符串转换json、JSON.stringify()--json转换成字符串 如:收到Json对象:response,则:{"result":"aaa","bbb","ccc"}1.response=JSON.stringify(response);respnoseEl.innerHTML=response;   //则会显示js 查看详情