复习解析嵌套json
在网络上找的一些经典的例子复习使用
一,解析嵌套json字符串,一个json字符串中嵌套另一个json字符串
{
"msg": {
"resCode": "0000",
"attrName": "sensorData",
"result": {
"food1": 0,
"water": 0,
"food2": 106,
"humidity": "152.42",
"temprature": "103.65"
}
}
}
我要获取的是嵌套在msg里的result中的所有数据。
先用msg和result分别创建bean类,把Result作为msg的其中一个变量
public class SensorBean implements Serializable {
private Result result;
private int resCode;
private String attrName;
public Result getResult() {
return result;
}
public void setResult(Result result) {
this.result = result;
}
public int getResCode() {
return resCode;
}
public void setResCode(int resCode) {
this.resCode = resCode;
}
public String getAttrName() {
return attrName;
}
public void setAttrName(String attrName) {
this.attrName = attrName;
}
@Override
public String toString() {
return "Msg{" +
"result=" + result.toString() +
", resCode=" + resCode +
", attrName='" + attrName + '\'' +
'}';
}
}
两个类都继承序列化
public class Result implements Serializable{
/**
* food1 : 0
* water : 0
* food2 : 106
* humidity : 152.42
* temprature : 103.65
*/
private int food1;
private int water;
private int food2;
private String humidity;
private String temprature;
public int getFood1() {
return food1;
}
public void setFood1(int food1) {
this.food1 = food1;
}
public int getWater() {
return water;
}
public void setWater(int water) {
this.water = water;
}
public String getTemprature() {
return temprature;
}
public void setTemprature(String temprature) {
this.temprature = temprature;
}
@Override
public String toString() {
return "Result{" +
"food1=" + food1 +
", water='" + water +
", temprature=" + temprature+ '\''+
'}';
}
}
然后在获取到数据的地方进行Gson解析
Gson gson = new Gson();
SensorBean sensorBean = gson.fromJson(data.getString("msg"), SensorBean.class);
Result result = sensorBean.getResult();
L.d(TAG, "result.bean = " + result.toString());
二.加上数组的json嵌套
{
"error": "0",
"data": [
{
"name": "1",
"value": [
{
"name": "2",
"value": "3"
},
{
"name": "4",
"value": "5"
}
]
},
{
"name": "6",
"value": [
{
"name": "7",
"value": "8"
},
{
"name": "9",
"value": "10"
}
]
}
]
}
import java.util.ArrayList;
public class JsonBean {
private Error error;
//data 是个数组
private ArrayList data;
public Error getError(){
return error;
}
public void setError(Error error){
this.error = error ;
}
public ArrayList getData(){
return data;
}
public void setData(ArrayList data){
this.data = data;
}
public static class Bean2 {
public String name;
public ArrayList value;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public ArrayList getValue() {
return value;
}
public void setValue(ArrayList value) {
this.value = value;
}
@Override
public String toString() {
return "Bean2 [name=" + name + ", value=" + value + "]";
}
}
public static class Bean3 {
public String name;
private String value;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
@Override
public String toString() {
return "Bean3 [name=" + name + ", value=" + value + "]";
}
}
}
}
复习解析嵌套json的更多相关文章
- 【golang】json数据解析 - 嵌套json解析
@ 目录 1. 通过结构体映射解析 2. 嵌套json解析-map 1. 通过结构体映射解析 原数据结构 解析 // 结构体 type contractJson struct { Data []tra ...
- QT解析嵌套JSON表达式
QT5开发环境集成了解析JSON表达式的库.使用很方便. 友情提示一下,好像在QT4环境里.须要到官网下载相关的库文件才干使用解析功能.话不多说,上代码 1.在pro文件里增加 QT += scrip ...
- 解析嵌套json字符串,一个json字符串中嵌套另一个json字符串
我现在有一个字符串是这样: { "msg": { ", "attrName": "sensorData", "trans ...
- .net 解析嵌套JSON
JSON格式文件如下:我们是要取出msgJsoncontent里面GeneralReportInfo下serviceData中的totalUseValue数据 { ", "mess ...
- Android利用Gson解析嵌套多层的Json
参考:http://www.cnblogs.com/jxgxy/p/3677256.html 比如我们要解析一个下面这种的Json: String json = {"a":&quo ...
- C# 解析嵌套的json文件.
概述 今天我同学问我如何转换json文件,没处理过,网上搜了一下,json转excel的很少,反过来倒是有许多人写了工具. json文件的结构大致是这样的: {, , }, , "type& ...
- 【Java_Spring】java解析多层嵌套json字符串
java解析多层嵌套json字符串
- 复杂json解析(json里面嵌套json)
调用第三方接口,返回一堆json,我只想取得里面的某一个属性,但是返回的比较复杂,无法直接拿到属性,格式类似于这样: {"video":{"id":" ...
- 利用FastJson,拼接复杂嵌套json数据&&直接从json字符串中(不依赖实体类)解析出键值对
1.拼接复杂嵌套json FastJson工具包中有两主要的类: JSONObject和JSONArray ,前者表示json对象,后者表示json数组.他们两者都能添加Object类型的对象,但是J ...
随机推荐
- Django之模板语言(三)------>自定义filter
1.自定义filter: 1.在app01下面新建一个templatetags的python package包. 如果没有app01的话,可以通过命令行在manage中进行创建:python mana ...
- Pyhon基本数据类型
1.数字 1.布尔型(bool) bool型只有两个值:True和False a = False b = True 2.整形 int型 n = 12 a = "12" 将字符串类型 ...
- shell下时间日期的加减乘除运算
首先我们先来说说什么是shell下的时间戳: 自1970年1月1日(00:00:00 UTC/GMT)以来的秒数.它也被称为Unix时间戳(Unix Timestam.Unix epoch.POSIX ...
- [Bzoj3696]化合物【暴力+树形Dp】
Online Judge:Bzoj3696 Label:暴力,树形Dp 题目描述 首长NOI惨跪,于是去念文化课了.现在,他面对一道化学题. 这题的来源是因为在一个奇怪的学校两个化竞党在玩一个奇怪的博 ...
- Leetcode145. Binary Tree Postorder Traversal二叉树的后序遍历
给定一个二叉树,返回它的 后序 遍历. 进阶: 递归算法很简单,你可以通过迭代算法完成吗? 递归: class Solution { public: vector<int> res; ve ...
- [转]绑定到异步的ObservableCollection
在进行WPF开发过程中,需要从一个新的线程中操作ObservableCollection,结果程序抛出一个NotSupportedException的错误: This type of Collecti ...
- js中call、apply、bind的区别和应用
一.总体概述 这三个方法都是改变函数本身的this指向的,但是略有不同 1.call 使用方法:函数名.call(this指向,展开的参数列表); 如果传入的this指向是null或者是undifin ...
- JQuery--漂亮的三目运算与jQ选择器结合代码
$(function($) { $("input[name='timeset']").bind('click', function() { $(this).val() == 'cu ...
- 关于MySQL IN LIKE OR使用索引的问题
以前在网上看了一些资料,有些人说话不严谨,导致一直被误导,最近在实际开发中发现一些结论有问题,因此特地整理了一下,防止下次继续犯错. 以下前提是有对这个字段建立索引(简直废话,没建的肯定不会使用索引啊 ...
- CGLayer和CALayer区别
CGLayer是一种很好的缓存常绘内容的方法.注意,不要与CALayer混淆.CALayer是Core Animation中更加强大.复杂的图层对象,而CGLayer是Core Graphics中优化 ...