Json转list,两种包,两种方式

1、使用fastjson

对于json串大小写没什么要求,测试的时候,我把javaBean属性设置成和json串一样的大小写,代码如下:

package com.myTest.json.test1;

import java.util.ArrayList;
import java.util.List;

import com.alibaba.fastjson.JSON;

public class app1 {

    public static void main(String[] args) {
        String jsonString = "[{‘Value‘:‘0‘,‘Name‘:‘测试0‘,‘statusInfo‘:{‘Status‘:‘0‘}},{‘Value‘:‘1‘,‘Name‘:‘测试1‘,‘statusInfo‘:{‘Status‘:‘10‘}},{‘Value‘:‘2‘,‘Name‘:‘测试2‘,‘statusInfo‘:{‘Status‘:‘20‘}},{‘Value‘:‘3‘,‘Name‘:‘测试3‘,‘statusInfo‘:{‘Status‘:‘30‘}},{‘Value‘:‘4‘,‘Name‘:‘测试4‘,‘statusInfo‘:{‘Status‘:‘40‘}},{‘Value‘:‘5‘,‘Name‘:‘测试5‘,‘statusInfo‘:{‘Status‘:‘50‘}},{‘Value‘:‘6‘,‘Name‘:‘测试6‘,‘statusInfo‘:{‘Status‘:‘60‘}},{‘Value‘:‘7‘,‘Name‘:‘测试7‘,‘statusInfo‘:{‘Status‘:‘70‘}},{‘Value‘:‘8‘,‘Name‘:‘测试8‘,‘statusInfo‘:{‘Status‘:‘80‘}},{‘Value‘:‘9‘,‘Name‘:‘测试9‘,‘statusInfo‘:{‘Status‘:‘90‘}}]";
        //String jsonString = "{‘Value‘:‘0‘,‘Name‘:‘测试0‘,‘statusInfo‘:{‘Status‘:‘12‘}}";
        List<DeviceReturn> deviceReturns= app1.getPersons(jsonString, DeviceReturn.class);
        System.out.println(deviceReturns);
        String toJsonString = JSON.toJSONString(deviceReturns);
        System.out.println(toJsonString);

    }

    public static <T> T getPerson(String jsonString, Class cls) {
        T t = null;
        try {
            t = (T) JSON.parseObject(jsonString, cls);
        } catch (Exception e) {
            // TODO: handle exception
        }
        return t;
    }

    public static <T> List<T> getPersons(String jsonString, Class cls) {
        List<T> list = new ArrayList<T>();
        try {
            list = JSON.parseArray(jsonString, cls);
        } catch (Exception e) {
        }
        return list;
    }
}

结果如下:

[[email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected]]
[{"name":"测试0","statusInfo":{"status":"0"},"value":"0"},{"name":"测试1","statusInfo":{"status":"10"},"value":"1"},{"name":"测试2","statusInfo":{"status":"20"},"value":"2"},{"name":"测试3","statusInfo":{"status":"30"},"value":"3"},{"name":"测试4","statusInfo":{"status":"40"},"value":"4"},{"name":"测试5","statusInfo":{"status":"50"},"value":"5"},{"name":"测试6","statusInfo":{"status":"60"},"value":"6"},{"name":"测试7","statusInfo":{"status":"70"},"value":"7"},{"name":"测试8","statusInfo":{"status":"80"},"value":"8"},{"name":"测试9","statusInfo":{"status":"90"},"value":"9"}]

json串中大写的,转成javaBean,再转成Json串后,变成符合java规范的属性名,很强大的一个包,赞一个。

2、使用net.sf.json.JSON

json串必须是符合java规范的属性,首字母必须小写,否则不能转成javaBean

public static void main(String[] args) {
        String jsonString = "[{\"value\":\"0\",\"name\":\"测试0\",\"statusInfo\":{\"status\":\"0\"}},{\"value\":\"1\",\"name\":\"测试1\",\"statusInfo\":{\"status\":\"10\"}}]";
        JSONArray array = JSONArray.fromObject(jsonString);
        System.out.println("JSONArray:"+array);
        List<?> deviceReturns = JSONArray.toList(array, new DeviceReturn(), new JsonConfig());
        JSONObject ob = JSONObject.fromObject(deviceReturns.get(0));
        System.out.println(ob);
    }

修改javaBean与之对应,也能成功。

Json转list,两种包,两种方式

时间: 2024-10-17 22:57:38

Json转list,两种包,两种方式的相关文章

javascript获取json对象的key名称的两种方法

javascript获取json对象的key名称的两种方法 数据处理中,你可能接收到一个不确定内容格式的json对象,然后要把key的值提取出来.今天试过两种可以提取json key的方法,均可以正常工作. 先看第一种方法 jsonObj = { Name: 'richard', Value: '8' }for (key in jsonObj){ console.log(key); //add your statement to get key value} 结果 NameValue 第二种方法

用easyui从servlet传递json数据到前端页面的两种方法

用easyui从servlet传递json数据到前端页面的两种方法 两种方法获取的数据在servlet层传递的方法相同,下面为Servlet中代码,以查询表中所有信息为例. //重写doGet方法 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stu

两种访问接口的方式(get和post)

跨机器.跨语言的远程访问形式一共有三种:scoket发送数据包.http发送请求.rmi远程连接: http发送请求方式:分为post和get两种方式 importjava.io.IOException; importjava.io.InputStream; import java.util.Map; importjava.util.concurrent.atomic.AtomicInteger; importorg.apache.commons.httpclient.HttpClient; i

(转)MapReduce 中的两表 join 几种方案简介

1. 概述 在传统数据库(如:MYSQL)中,JOIN操作是非常常见且非常耗时的.而在HADOOP中进行JOIN操作,同样常见且耗时,由于Hadoop的独特设计思想,当进行JOIN操作时,有一些特殊的技巧. 本文首先介绍了Hadoop上通常的JOIN实现方法,然后给出了几种针对不同输入数据集的优化方法. 2. 常见的join方法介绍 假设要进行join的数据分别来自File1和File2. 2.1 reduce side join reduce side join是一种最简单的join方式,其主

apache两种方案三种方式实现反向代理tomcat

目录 1.概述 2.方案一:以proxy_module方式反向代理 3.方案二:以mod_jk方式反向代理 4.总结 1.概述 在前一博客(http://zhaochj.blog.51cto.com/368705/1639740)中实现了tomcat的在standalone模式下的部署,这样tomcat就身兼职两职,一方向要对http的请求作出响应,又要处理JSP程序,而处理http请求不是tomcat的强项,所以这样的请求就交给httpd.nginx这样的的专业处理http请求的套件来处理,而

javascript两种声明函数的方式的一次深入解析

声明函数的方式 javascript有两种声明函数的方式,一个是函数表达式定义函数,也就是我们说的匿名函数方式,一个是函数语句定义函数,下面看代码: /*方式一*/ var FUNCTION_NAME = function() { /* FUNCTION_BODY */}; /*方式二*/ function FUNCTION_NAME () { /* FUNCTION_BODY */}; 区别一 方式一的声明方式是先声明后使用 方式二的声明方式可以先调用,后声明 /*方式一: *先声明后使用 *

Adnroid 两种下拉刷新 方式的实现 sina刷新 gmail刷新

sina刷新 这种下拉刷新的方式是比较简单的.上个图: 这种刷新方式的思路是这样的: 首先是需要一个HeaderVIew也就是刷新时头部所显示出来的数据.这个view的布局随你,长啥样自己定夺. 其他不是特别重要,重要的是用户触摸事件的捕捉,看到github上的大神的一些方法是比较正规的,我就自己用自己的方法尝试,主要是捕捉到用户的点击事件来计算用户所触摸到的位置然后来更新头部布局的位置. 这个重要的代码贴出来: case MotionEvent.ACTION_MOVE: currentY =

两种极端的生活方式

第一种极端: “未来思维型”. 这种极端的生活方式是一切为“未来”, 为未来奋斗, 为未来打下基础, 在未来享受. 第二种极端: “及时享乐型”. 这种极端的生活方式是“及时把酒言欢”, 别管什么未来, 只要当下潇洒就行. 第二种极端, 其实已经接近开悟的状态, 他们明白每一个当下和此刻,即是生命的本质,是真正需要珍惜的礼物,因此,不为过去和未来所影响,只做好真正需要的这一部分.只是他们的身体和精神受到享乐主义的驱使,只能在开悟的大门口徘徊往复,无所精进. 第一种极端, 不能说不对, 毕竟按照这

两种停止Thread的方式

当你想要依据某些条件终结thread的时候,有两种最常见的方式. 设定标记 最常见停止thread的方式是设定某些标记来表示该thread应该要停止了.thread可以周期性地查询标记以判别它是否应该退出.如例: package test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main {     public stati