`
249432599
  • 浏览: 15127 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

Json数据类型转换成list集合对象

    博客分类:
  • JSON
阅读更多

最近我负责的一个项目,后台是用ExtJs框架,在使用到编辑表格(EditorGrid)的时候需要修改数据,要做到人性化和简化数据更新,为了 做到这些,需要将改变过的数据以json数据类型返回服务器端,但是返回的json数据类型是多条信息的集合,并且每条数据都有修改数据类型不同的可能, 比如说id为1的这条数据我只修改了这段为name,而id为2的这条信息我修改了name和age这2个字段,则返回的json数据中,将是2个键名不 同的数据。但是在服务器段接受到的数据必须和数据持久打交道,每条数据都将更新到数据库,那么就只能将处理后的json数据变形为Map形式,再将每个 Map存放在List<T>集合里

在这我写了一个util类,用来把json数据类型转化成 List<Map<String,Object>>集合型

 


    /**
     * JSONTOMap,本方法是把JSON数据类型转化成List<Map<String, Object>>集合型
     *
     * @param json
     *            需要装换的JSON数据类型
     * @return
     *            List
     */

 

public static List<Map<String, Object>> JSONTOMap(String json) {
       
        List<Map<String, Object>> listMap = new ArrayList<Map<String, Object>>();
       
        List<String> list = new ArrayList<String>();

        String JSON = json.substring(1, json.length() - 1);
       
        JSON = JSON.replaceAll("},", "}^");
       
        StringTokenizer strTokenizer = new StringTokenizer(JSON, "^");
       
        while (strTokenizer.hasMoreTokens()) {
           
            String token = strTokenizer.nextToken();
           
            list.add(token);
           
        }

        int start = 0;
       
        int end = 0;
       
        int start2 = 0;
       
        int end2 = 0;

        for (int i = 0; i < list.size(); i++) {

            String str = (String) list.get(i);
       
            String key = "";
           
            String value = "";

            Map<String, Object> map = new HashMap<String, Object>();

            for (int j = 0; j < str.length(); j++) {

                String sub = str.substring(j, j + 1);

                if (sub.equals("{")) {
           
                    start = j + 1;
                }
               

                if (sub.equals(",")) {
       
                    start = j + 1;
                }

                if (sub.equals(":")) {
           
                    end = j;
               
                    key = str.substring(start, end);
                   
                    key = key.substring(1, key.length()-1);
                }

                if (sub.equals(":")) {
           
                    start2 = j + 1;
                }

                if (sub.equals(",") || sub.equals("}")) {
           
                    end2 = j;
               
                    value = str.substring(start2, end2);
               
                    if(value.substring(0, 1).equals("\"") && value.substring(value.length()-1,value.length()).equals("\"")){
                        value = value.substring(1, value.length()-1);
                    }
                   
                    map.put(key, value);
                }
            }

            listMap.add(map);
        }
        return listMap;
    }
}
 

 

分享到:
评论
1 楼 dh189 2010-07-29  
推荐使用jackson来封装和解析json,效率很好的,可以看下我写的这个:http://dh189.iteye.com/blog/722273
http://dh189.iteye.com/blog/710630

相关推荐

    java实现将实体类list集合,转化成geojson字符串

    GeoJSON是一种对各种地理数据结构进行编码的格式,基于Javascript对象表示法(JavaScript Object Notation, 简称JSON)的地理空间信息数据交换格式。GeoJSON对象可以表示几何、特征或者特征集合。GeoJSON支持下面这几...

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

    可以直接将集合的类型,直接转换为Json的格式,方便实现ajax数据的读取

    C#中任意类型数据转成JSON格式

    List转成json public static string ListToJson(IList&lt;T&gt; list, string jsonName) { StringBuilder Json = ...对象集合转换Json 普通集合转换Json DataTable转成Json DataReader转换为Json DataSet转换为Json

    json数组转化为list-Python入门进阶教程-JSON操作.pdf

    json数组转化为list_Python⼊门进阶教程-JSON操作 「关注我,和我⼀起放下灵魂,让灵魂去搬砖。」 Python JSON操作 操作 Python版本... JSON类型转换 类型转换 当程序把 JSON 对象或 JSON 字符串转换成 Python 对象时

    DataUtil--数据工具类--数据类型判断和比较

    指定字段获取List的JSON格式数据,JSON字符串转换成对象集合(只支持6种基本数据类型),一个单元的json字符串转换成MAP对象,数组转换成集合,List深拷贝,字符串转换为short,进制转换,保留小数位数到指定位数,...

    javaScript如何处理从java后台返回的list

    网上搜了搜大家的解决方案…最好的当然是把List集合转成json格式传到界面上。这样js里面操作也简单,页面也没有影响。 解决: 将List&lt;String&gt; 转成json,传到界面。js中使用var arr = eval(‘${list}’);将list转成...

    Json日期格式问题的四种解决方法(超详细)

    开发中有时候需要从服务器端返回json格式的数据,在后台代码中如果有DateTime类型的数据使用系统自带的工具类序列化后将得到一个很长的数字表示日期数据,如下所示: //设置服务器响应的结果为纯文本格式 context...

    多功能.NET代码自动生成器(含存储过程)

    解析List数据集合为json数据源,json数据源记录总条数即为List集合的元素个数。 public string GetJsonByList(List&lt;CalendarNotesModel&gt; list, int count) 解析List数据集合为json数据源,json数据源记录总条数为...

    多功能.NET代码自动生成器2.0版(2010年最新修改)

    解析List数据集合为json数据源,json数据源记录总条数即为List集合的元素个数。 public string GetJsonByList(List&lt;CalendarNotesModel&gt; list, int count) 解析List数据集合为json数据源,json数据源记录总条数为...

    List-DataTable-2019-01-03.zip

    引入第三方库 Newtonsoft.Json,调用里面方法实现转换功能。这个可以从NuGet程序包搜索此名称下载!

    C#基类库大全下载--苏飞版

    List转成Json|对象转成Json|集合转成Json|DataSet转成Json|DataTable转成Json|DataReader转成Json等 8.Mime MediaTypes 电子邮件类型帮助类,规定是以Xml,HTML还是文本方式发送邮件 MimeEntity Mime实体帮助类...

    C#基础类库

    List转成Json|对象转成Json|集合转成Json|DataSet转成Json|DataTable转成Json|DataReader转成Json等 8.Mime MediaTypes 电子邮件类型帮助类,规定是以Xml,HTML还是文本方式发送邮件 MimeEntity Mime实体帮助类...

    python-javaobj:python-javaobj是一个python库,提供了读取Java对象序列化ObjectOutputStream的函数

    自动将 Java 集合转换为 python 集合( HashMap =&gt; dict、 ArrayList =&gt; list 等) 要求 Python &gt;= 2.6,但 &lt; 3.0(正在移植到 3.0) Maven 2+(用于构建序列化对象的测试数据。如果您不打算运行tests.py,可以...

    android学习文档

    1.先写一个工具类,把list集合转化成xml格式,注意支持各种类型 35 分析:用dom4j来操作 35 2.涉及的知识 35 五、开发中会用到的技术 36 1、Selector技术 36 2、Tosat显示消息提示框技术 36 3、Handler消息传递机制 36 ...

    C#基类库(苏飞版)

    List转成Json|对象转成Json|集合转成Json|DataSet转成Json|DataTable转成Json|DataReader转成Json等 8.Mime MediaTypes 电子邮件类型帮助类,规定是以Xml,HTML还是文本方式发送邮件 MimeEntity Mime实体帮助类...

Global site tag (gtag.js) - Google Analytics