`
weitao1026
  • 浏览: 1034598 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Json与List的相互转换

 
阅读更多

问题由来:

最近由于做一个项目,项目的一个功能就是根据Listview的内容生成一个二维码,然后扫描二维码获取list,再重新显示listview。

核心就是:
list—->生成二维码——>获取二维码—–>获取list

生成二维码的方法:

http://blog.csdn.net/demonliuhui/article/details/52948696

由于生成二维码的参数类型是String,不能是list。如果将list的内容get出来拼成String生成二维码。扫描二维码后如何处理String转为list又是一个棘手的问题。因此我想到了将list的内容封装成json,因为json本身就是String类型,所以生成二维码就会很简单,进而对json进行解析生成list。整个问题就变成了一个很easy的问题:
list—->json——->生成二维码——>扫描二维码获取json——>解析json——->list

于是自己写了一个代码list转换为json:

 /**
     *数据封装成json
     *
     * @param items 物料入库数据
     * @return json
     * @throws JSONException
     */
public static String GoodIn2Json(List<GoodInfo> items) throws JSONException {
        if (items == null) return "";
        JSONArray array = new JSONArray();
        JSONObject jsonObject = null;
        GoodInfo info = null;
        for (int i = 0; i < items.size(); i++) {
            info = items.get(i);
            jsonObject = new JSONObject();
            jsonObject.put(Api.COLORID, info.getColorId());
            jsonObject.put(Api.STOCK, info.getStock());
            array.put(jsonObject);
        }
        return array.toString();
    }
/**
     * 将json数组解析出来,生成自定义数据的数组
     * @param data 包含用户自定义数据的json
     * @return 自定义信息的数据
     * @throws JSONException
     */
    public static List<MoreInfo> Json2UserDefine(String data) throws JSONException {
        List<MoreInfo> items = new ArrayList<>();
        if (data.equals("")) return items;

        JSONArray array = new JSONArray(data);
        JSONObject object = null;
        MoreInfo item = null;
        for (int i = 0; i < array.length(); i++) {
            object = array.getJSONObject(i);
            String key = object.getString(Api.KEY);
            String value = object.getString(Api.VALUE);
            item = new MoreInfo(key, value);
            items.add(item);
        }
        return items;
    }

代码很简单,就不详解。这样貌似就大功告成了,但是:
这样只能处理list里面只有一组数据的情况。如果循环封装成json,得到的格式就是:

[{"name":"name0","age":0}][{"name":"name1","age":5}][{"name":"name2","age":10}]

而不是:

[{"name":"name0","age":0}{"name":"name3","age":15},{"name":"name4","age":20}] 

很明显第一种格式并不是我想要的json格式,还要据循循环遍历json解析,想想就让人苦恼。 list里面参数少还好,如果有很多的话,岂不是要累死。

于是我百度了一下:list转换为json,不查不知道,一查原来还有json转换为list。狂吐两口老血!!!
不过也算是学到了。
1.使用谷歌的Gson.jar。
2.使用阿里的fastJson.jar
已经打包好了,地址:
http://download.csdn.net/detail/demonliuhui/9666072

简单的令人发指:

谷歌的Gson.jar:

//list转换为json
Gson gson = new Gson();  
List<Person> persons = new ArrayList<Person>();  
String str = gson.toJson(persons);  
//json转换为list
Gson gson = new Gson();  
List<Person> persons = gson.fromJson(str, new TypeToken<List<Person>>(){}.getType());  

阿里的fastJson.jar:

//list转换为json
List<CustPhone> list = new ArrayList<CustPhone>();
String str=JSON.toJSON(list).toString();
//json转换为list
  List<Person> list = new ArrayList<Person>();  
        list = JSONObject.parseArray(jasonArray, Person.class);  

导入jar包直接调用,简单无烦恼。

参考:
http://blog.csdn.net/qxs965266509/article/details/42774691
http://huyizizhen.iteye.com/blog/1453621
http://blog.csdn.net/u010797575/article/details/43304981
http://blog.csdn.net/paincupid/article/details/51221391

分享到:
评论

相关推荐

    JSON与Java互相转换Demo(Eclipse)

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

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

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

    Json与实体相互转换,支持IList泛型

    Json转换为实体;Json转换为IList;实体转换为Json;IList转换为Json;

    androidmap转json字符串、list转json字符串工具类.zip

    String jsonList = listToJsonString(myList); // 转换List ``` 在实际应用中,这样的工具类可以帮助开发者更方便地处理JSON数据,无论是发送HTTP请求还是解析服务器返回的数据。使用Gson库可以自动处理对象的序列...

    JavaBean与Json相互转换

    本节将详细讲解如何在Java中进行JavaBean与Json的转换。 首先,我们来看JavaBean。JavaBean遵循一定的规范,通常包含一个无参数的构造器,属性私有化并提供getter和setter方法,以及可能的逻辑业务方法。例如,一个...

    实体类的简单基础应用 List 与 JSON 互相转换

    本教程将深入探讨实体类在实际项目中的简单基础应用,以及如何实现List与JSON之间的互相转换。这在处理Web API或Web服务的数据交换时非常常见。 首先,让我们理解什么是实体类。在C#中,实体类通常由一组属性组成,...

    Json与java对象之间相互转换源码

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

    json之间的转换

    本文介绍了如何在Java中实现JSON与List之间的相互转换。通过使用`JSONArray`类提供的方法,我们可以轻松地将JSON字符串转换为Java对象,也可以将Java对象转换为JSON字符串。这些转换技术对于处理前后端数据交互、...

    类的List与Json的互转.docx

    本篇将详细介绍如何在C#中实现类的List与Json语句的互相转化。 首先,我们需要定义一个类,例如这里的`Person`类,它包含了年龄(Age)、姓名(Name)和性别(Sex)三个属性。这些属性都使用了自动属性的语法,方便...

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

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

    android中list数据与json互转

    本篇主要介绍如何在Android中进行`List`数据与JSON的相互转换。 一、JSON简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它的结构基于两种基本...

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

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

    将集合转换为Json的相关jar包

    通过引入如Jackson、Gson和Fastjson这样的库,开发者能够轻松地处理JSON与Java集合间的相互转换,从而提升应用程序的性能和用户体验。在实际项目中,选择合适的库应考虑性能、易用性和社区支持等因素。

    JSON与JAVA数据的相互转换

    总的来说,JSON与Java数据的相互转换是Web开发中的常见任务,理解并熟练掌握这些转换方法对于提升开发效率至关重要。开发者应根据项目需求和团队习惯选择合适的JSON处理库,并确保在处理过程中正确处理可能的异常,...

    Json与实体类的转换工具类

    自己平时项目开发总结出来的Json与实体类、List的相互转换工具类

    List2Json.7z

    Fastjson是阿里巴巴开源的一个高性能的JSON库,它提供了Java对象和JSON数据之间的相互转换功能。通过使用Fastjson,开发者可以轻松地在Java对象和JSON文本之间进行序列化和反序列化操作。 1. **JSON到Java Bean的...

    利用Google Gson实现JSON字符串和对象之间相互转换

    本文将详细介绍如何利用Google Gson库进行JSON字符串与对象之间的相互转换。 首先,我们需要了解Gson的核心概念。Gson库通过`Gson`类来实现JSON与Java对象的转换。当你有一个Java对象并想将其转化为JSON字符串时,...

    object与 json 相互转换工具类

    CSDN上另外一篇博客的附带资源太贵了,我就整个最便宜的来造福社会吧! 内附使用说明,傻瓜式使用教学 //list 转json ...List&lt;String&gt; list2 = g2.fromJson(str1, new TypeToken&lt;List&lt;String&gt;&gt;(){}.getType());

    Java和JSON之间的相互转换所需要所有的jar包及实例

    本篇文章将详细讲解如何在Java中使用`json-lib`库进行JSON与Java对象之间的相互转换,并提供相关的jar包列表。 首先,`json-lib`是一个非常流行的Java JSON库,它提供了多种Java数据类型与JSON之间的转换功能,包括...

Global site tag (gtag.js) - Google Analytics