Json示例:

 [
{
"age": 25,
"gender": "female",
"grades": "三班",
"name": "露西",
"weight": 51.3
},
{
"age": 26,
"gender": "male",
"grades": "三班",
"name": "杰克",
"weight": 66.5
},
{
"age": 25,
"gender": "female",
"grades": "三班",
"name": "莉莉",
"weight": 55
}
]

我们来解析一下这个Json字符串。

首先,因为此Json字符串最外边是由一个中括弧”[]”包裹,那么,最终我们会用数组或者列表来接收它。

接下来,我们能看到中括弧里边有三个同级的大括弧,并且每个大括弧里包含的内容是相同的,大括弧我们可以对应创建一个类,我们创建一个类Student.java,并对应大括弧内的元素,定义相应的成员变量,生成get/set方法。

我们生成的Student.java如下:

 package com.bean;

 /**
* 学生
*/
public class Student { private int age;//年龄
private String gender;//性别,male/female
private String grades;//班级
private String name;//姓名
private float weight;//体重 public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getGrades() {
return grades;
}
public void setGrades(String grades) {
this.grades = grades;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public float getWeight() {
return weight;
}
public void setWeight(float weight) {
this.weight = weight;
} }

解析成数组或列表:

 package com.test;

 import java.util.ArrayList;
import java.util.List; import net.sf.json.JSONArray; import com.bean.Student; public class Domain { @SuppressWarnings("unchecked")
public static void main(String[] args) { String jsonStr = "[{\"age\": 25,\"gender\": \"female\",\"grades\": \"三班\",\"name\": \"露西\",\"weight\": 51.3},{\"age\": 26,\"gender\": \"male\",\"grades\": \"三班\",\"name\": \"杰克\",\"weight\": 66.5},{\"age\": 25,\"gender\": \"female\",\"grades\": \"三班\",\"name\": \"莉莉\",\"weight\": 55}]"; JSONArray jsonArray = JSONArray.fromObject(jsonStr); Student[] stus = new Student[3];
List<Student> list = new ArrayList<Student>(); stus = (Student[]) JSONArray.toArray(jsonArray, Student.class);//转换成数组
list = (List<Student>) JSONArray.toCollection(jsonArray, Student.class);//转换成列表 }
}

通过数组或者列表生成Json字符串:

 package com.test;

 import java.util.ArrayList;
import java.util.List; import net.sf.json.JSONArray; import com.bean.Student; public class Domain { @SuppressWarnings("unchecked")
public static void main(String[] args) { Student stu1 = new Student();
Student stu2 = new Student();
Student stu3 = new Student(); stu1.setAge(25);
stu1.setGender("female");
stu1.setGrades("三班");
stu1.setName("露西");
stu1.setWeight(51.3f); stu2.setAge(26);
stu2.setGender("male");
stu2.setGrades("三班");
stu2.setName("杰克");
stu2.setWeight(66.5f); stu3.setAge(25);
stu3.setGender("female");
stu3.setGrades("三班");
stu3.setName("莉莉");
stu3.setWeight(55.0f); Student[] stus = new Student[3];
List<Student> list = new ArrayList<Student>(); stus[0] = stu1;
stus[1] = stu2;
stus[2] = stu3; list.add(stu1);
list.add(stu2);
list.add(stu3); String jsonStr1 = JSONArray.fromObject(stus).toString();
String jsonStr2 = JSONArray.fromObject(list).toString(); System.out.println(jsonStr1);
System.out.println(jsonStr2); }
}

Java解析Json字符串--数组或列表的更多相关文章

  1. Java解析json字符串和json数组

    Java解析json字符串和json数组 public static Map<String, String> getUploadTransactions(String json){ Map ...

  2. java解析Json字符串之懒人大法

    面对Java解析Json字符串的需求,有很多开源工具供我们选择,如google的Gson.阿里巴巴的fastJson.在网上能找到大量的文章讲解这些工具的使用方法.我也是参考这些文章封装了自己的Jso ...

  3. Mysql解析json字符串/数组

    1 Mysql解析json字符串  解决方法:JSON_EXTRACT(原字段,'$.json字段名') 执行SQL: SELECT JSON_EXTRACT( t.result,'$.row'), ...

  4. Java解析Json字符串--复杂对象

    { "name": "三班", "students": [ { "age": 25, "gender" ...

  5. java解析json字符串详解(两种方法)

    一.使用JSONObject来解析JSON数据官方提供的,所以不需要导入第三方jar包:直接上代码,如下 private void parseJSONWithJSONObject(String Jso ...

  6. java 解析json字符串

    如果转载我的这篇文章请注明出处,谢谢! 最近工作中,需要解析json格式的字符串,恰好有个例子,感觉不错,拿来分享. 运行这个类需要加载jar包:ezmorph-1.0.6.jar.json-lib- ...

  7. java解析json字符串

    import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List; ...

  8. json解析json字符串时候,数组必须对应jsonObjectArray,不能对应JsonObject。否则会解析错误。

    json第三方解析json字符串时候,json数组必须对应jsonObjectArray,不能对应JsonObject.->只要是[]开头的都是json数组字符串,就要用jsonArray解析 ...

  9. JSON.stringify()方法是将一个javascript值(对象或者数组)转换成为一个JSON字符串;JSON.parse()解析JSON字符串,构造由字符串描述的javascript值或对象

    JSON.stringify()方法是将一个javascript值(对象或者数组)转换成为一个JSON字符串:JSON.parse()解析JSON字符串,构造由字符串描述的javascript值或对象

随机推荐

  1. Ubuntu 国内安装 kubernetes

    由于墙的原因,国内要安装 kubernetes 非常的麻烦,因此只要解决这个问题,就可以顺利安装 kubernetes 的 三个官法工具 kubelet.kubeadm.kubectl. 安装环境: ...

  2. T114048 [RC-02] yltx数对 (打表)

    这题如果全部打表的话,文件大小会有65kb,超了,所以只打出一半,前一半用程序算就可以了,并不会超时. 如果算法优化的好,其实可以打的更少. #include <bits/stdc++.h> ...

  3. 让 typora和word一样好用

    让 typora和word一样好用  :https://github.com/itcastWsy/typora_copy_images typora是一款支持实时预览的markdown编辑器,作者在使 ...

  4. netty(八)buffer源码学习3

    问题 : compositeByteBuf 是干什么和其他 compositeByteBuf 有何区别 内部实现 概述 compositeByteBuf 就像数据库中的视图,把几个表的字段组合在一起, ...

  5. HDU 1312 Red and Black(经典DFS)

    嗯... 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1312 一道很经典的dfs,设置上下左右四个方向,读入时记下起点,然后跑dfs即可...最后答 ...

  6. 惠普台式机,如何选择U盘启动

    开机先连续点击键盘F9按键进入选择启动盘界面,找到自己的U盘(KingstonDataTraveler 3.0)

  7. PHP如何实现处理过期或者超时订单的,并还原库存

    订单是我们在日常开发中经常会遇到的一个功能,最近在做一个订单过期与超时的开发.订单过期与超时就不用我解释了吧,其实两者都是同一个问题来着,就是订单未支付的处理,我们要做的是对这些未支付的订单到了一定时 ...

  8. npm 配置国内淘宝镜像

    淘宝NPM镜像官网:http://npm.taobao.org/ npm config set registry=http://registry.npm.taobao.org -g 安装cnpm: n ...

  9. typo3 网站迁移

    最近再弄这个typo3,虽然说看不怎么动,但是迁移嘛,最笨的办法就是整体过去,就是数据量太大了,哈哈,我先写一下我的笨办法: 注意:每个版本的typo3对php,mysql,apache的版本都有要求 ...

  10. js图片轮换播放器

    <!DOCTYPE html> <html> <head> <title></title> <meta charset="u ...