`
ssxxjjii
  • 浏览: 948235 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JSON与JAVA数据的相互转换

 
阅读更多
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与java对象之间相互转换源码

    在Java中,我们经常需要将JSON字符串与Java对象进行相互转换,以便于数据的传输和处理。本篇文章将详细探讨这个过程,以及如何使用常见的Java JSON库,如Gson和Jackson,进行JSON与Java对象的转换。 首先,让我们...

    JAVA json 与java类相互转化 所有jar包

    以下是对JSON与Java类相互转化的详细讲解: 1. **Jackson库**: Jackson是Java中非常流行的JSON处理库,由 FasterXML 维护。它提供了`ObjectMapper`类来实现Java对象到JSON和JSON到Java对象的转换。 - **对象转...

    json格式与java类对象相互转换

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,被广泛用于前后端交互,而Java作为后端开发的主要语言,常常需要将JSON格式的数据与Java类对象进行相互转换,以便于数据的处理和传输。Jackson库是...

    JSON与JAVA数据的转换

    ### JSON与JAVA数据的转换详解 #### 一、引言 在现代软件开发尤其是Web应用开发过程中,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式被广泛使用。它基于JavaScript的一个子集,但独立于语言和...

    JSON与Java互相转换Demo(Eclipse)

    在Java中,我们常常需要将JSON字符串与Java对象之间进行转换,以便于数据的传输和处理。本示例提供了在Eclipse环境下实现JSON与Java对象互转的代码演示。 首先,我们要了解两个关键的Java库:org.json和...

    使用jackson完成json与java对象的互相转换实例

    Jackson是Java领域最流行的JSON处理库之一,它提供了高效且灵活的API来实现JSON与Java对象之间的相互转换。本实例将详细介绍如何使用Jackson库进行JSON到Java对象的反序列化以及Java对象到JSON的序列化。 首先,...

    form数据与json对象的互相转换(完整版)

    form数据与json对象的互相转换(完整版) * 将web Form 的数据转化成json字符串 * 将json对象的值解析后填入web Form 在AJAX开发中这是关键技术: 1、将form中的数据利用本工具转换成json格式的字符串,再通过ajax传...

    JSON与JAVA数据的相互转换.pdf

    在Java中,为了实现JSON与Java数据类型的相互转换,通常会使用到一些库,如JSON-P,JSON-B,或者这里提及的net.sf.json.JSONObject,这是一个开源的JSON库。 一、Java对象转换为JSON字符串: 在Java中,如果我们有...

    JSON与JAVA数据的相互转换 (2).pdf

    在Java中,为了实现JSON与Java数据类型的相互转换,通常会使用第三方库,如FastJSON、Jackson、Gson等。这里提到的是FastJSON,它是阿里巴巴提供的一个高性能的JSON库。 1. **JavaBean到JSON的转换** 要将...

    java实现Xml与json之间的相互转换操作示例

    在实际开发中,如果需要频繁进行xml与json的转换操作,除了使用Java代码实现之外,还可以使用在线工具进行操作,例如示例中提供的在线json代码检验、美化、格式化工具,以及在线xml/json互相转换工具等,这些工具...

    用于java对象与json对象间的相互转换(net.sf.json.JSONObject)

    两者可以互相转换,并有类似的方法进行操作。 - **类型转换**:`JSONObject`的`getXXX`系列方法可以根据字段类型返回对应的Java值,如`getString()`, `getInt()`, `getBoolean()`等。 - **异常处理**:在转换过程中...

    json与java对象互转

    本文将深入探讨如何在Java中实现JSON与Java对象之间的相互转换,以及这一过程中的高级定制技巧。 #### JSON与Java对象互转的重要性 JSON与Java对象互转是后端开发中常见的需求,尤其是在Web应用和移动应用的数据...

    JSON与其他数据类型互相转换

    1.JSON与其他数据类型互相转换; 2.支持转换类型有:map、List等; 3.java语言实现; 4.支持不同数据类型相互转换;

    java与json互相转换的jar包

    Java与JSON互相转换是开发过程中常见的需求,尤其是在服务器端与前端之间传递数据时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其易读性、易写性和高效性,被广泛应用于Web服务。Java则是...

    json与对象相互转换系列处理

    以下是对JSON与对象相互转换的一些详细说明: 1. **Python中的JSON操作**: - `json.dumps()`: 序列化对象到JSON字符串。例如,`json.dumps(obj, ensure_ascii=False)`可以将Python对象转化为JSON字符串,`ensure_...

    JSON在JAVA客户端和服务端传输

    总结来说,JSON在Java客户端和服务端的传输涉及到JSON数据格式与Java对象之间的转换。开发者需要掌握如何将JSON字符串转换为Java对象,以及如何将Java对象序列化为JSON字符串,并在服务端正确解析这些数据。这些知识...

    java的xml和json相互转换工具类,亲测直接用

    在Java开发中,XML(可扩展标记语言)和JSON...在`XmlToJson.java`这个工具类中,我们展示了如何利用Jackson库进行XML与JSON之间的转换。这只是一个基础示例,实际项目中可能需要进行更复杂的错误处理和数据验证。

    java-对象数组转换为json

    在IT领域,特别是Java编程中,对象数组与JSON之间的转换是一项常见且重要的操作。下面将深入探讨如何在Java中实现对象数组向JSON的转换,并反过来将JSON字符串转换为Java对象数组,同时也会提及一些相关技术和代码...

Global site tag (gtag.js) - Google Analytics