java数组⾥套数组_⽤JAVA进⾏Json数据解析(对象数组的相
互嵌套)
这段时间我们在做⼀个英语翻译软件的⼩⼩⼩APP,涉及到了对Json数据的解析,所以特地来总结⼀下!
假设我们要对如下数据进⾏解析,其实在平时,返回的Json数据是很乱的,很难分清数据的关系,这是经过相关⼯具美化后的结果
{
"translation": [
"爱"
],
"basic": {
"us-phonetic": "lʌv",
"phonetic": "lʌv",
"uk-phonetic": "lʌv",
"explains": [
"n. 恋爱;亲爱的;酷爱;喜爱的事物",
"vt. 喜欢;热爱;爱慕",
"vi. 爱",
"n. (Love)⼈名;(英)洛夫"
]
},
"web": [
{
"value": [
"爱情",
"爱",
"爱"
],
"key": "Love"
},
{
"value": [
"⽆尽的爱",
"蓝⾊⽣死恋",
"不了情"
],
"key": "Endless Love"
},
{
"value": [
"早恋",
"青春期恋爱",
"初恋"
],
"key": "puppy love"
}
]
}
我们把数据定义为⼀个字符串,加⼊转义字符之后就成了这样,有点乱是吧,所以我们根据上图分析就好啦。
Json数据说⽩了就是对象和数组的相互嵌套,那么我们开始吧!
String st =
"{\"translation\":[\"爱\"],\"basic\":{\"us-phonetic\":\"lʌv\",\"phonetic\":\"lʌv\",\"uk-phonetic\":\"lʌv\",\"explains\":[\"n.
恋爱;亲爱的;酷爱;喜爱的事物\",\"vt. 喜欢;热爱;爱慕\",\"vi. 爱\",\"n.
(Love)⼈名;(英)洛夫\"]},\"query\":\"love\",\"errorCode\":0,\"web\":[{\"value\":[\"爱情\",\"爱\",\"爱\"],\"key\":\"Love\"}, {\"value\":[\"⽆尽的爱\",\"蓝⾊⽣死恋\",\"不了情\"],\"key\":\"Endless
json转换对象Love\"},{\"value\":[\"早恋\",\"青春期恋爱\",\"初恋\"],\"key\":\"puppy
love\"}]}";
JSONObject str = JSONObject.fromObject(st);                //json数据的最外层肯定是⼀个对象,参数为字符串
//对象str⼜分为3部分:translation,basic,web
if(str.has("translation")){
JSONArray tr = JSONArray("translation");              //translation是⼀个json数组
for(int i = 0 ;i
System.out.String(i));              //因为元素的值是String类型的所以忽的值的⽅法是getString(index)
}
}
//basic中有数组也有元素
if(str.has("basic")){
JSONObject us = JSONObject("basic");              //对元素进⾏解析,并输出元素的值
System.out.print("美:[" + us.getString("us-phonetic") + "]\t");
JSONObject uk = JSONObject("basic");
System.out.print("英:[" + us.getString("uk-phonetic") + "]\n");
JSONObject basic = JSONObject("basic");              //先获得basic对象
JSONArray explain = JSONArray("explains");            //再获得basic对象下的explains数组
for(int i = 0;i
System.out.String(i));
}
}
if(str.has("web")){                              //web是⼀个数组,每个数组元素⼜是三个Json对象
System.out.println("拓展:");
JSONArray web = JSONArray("web");
for(int i = 0; i
String t = String(i);                  //遍历过程将web数组元素赋给String型变量
JSONObject we = JSONObject.fromObject(t);            //通过String⼜得到每个元素的对象
if(we.has("key")){
System.out.String("key")+"\t");        //得到对象中的元素
}
if(we.has("value")){
JSONArray value = we.getJSONArray("value");
for(int x = 0 ; x
System.out.String(x));      //得到数组元素的值
if(x
System.out.print(";");
}
}
}
System.out.println();
}
}
到这⾥就解析完啦!
Java XML JSON 数据解析
下⾯我们通过⼀段代码了解⼀下解析JSON格式数据的基本过程: 提⽰:使⽤JSON需要导⼊ JSON 相关的多个Jar⽂件 import net.sf.json.JSONObject; public c ...
cocos2d-x把json数据解析到数组或字典中(libjson库)
以前在cocos2d-x项⽬中⽤到json解析,集成了libjson库后发现⽹上提供的解析⽅法⼤多是在解析过程中取得值,并没有将解析结果有效的保存起来,于是摸索⼀番,把解析结果根据数据格式存到数组或字 ...
Java技巧——将前端的对象数组通过Json字符串传到后端并转换为对象集合
Java技巧——将前端的对象数组通过Json字符串传到后端并转换为对象集合 摘要:本⽂主要记录了如何将将前端的对象数组通过Json字符串传到后端,并在后端将Json字符串转换为对象集合. 前端代码 前 ...
JSON数据解析 基础知识及链接收集
JSON数据解析学习 JSON介绍 JSON(JavaScript Object Notation)是⼀种轻量级的数据交换格式. JSON 是存储和交换⽂本信息的语法.类似 XML.但是JSON ⽐ ...
iOS - JSON 数据解析
iOS - JSON 数据解析 前⾔ NS_CLASS_AVAILABLE(10_7, 5_0) @interface NSJSONSerialization : NSObject @availab ...
Android学习笔记之JSON数据解析
转载:Android学习笔记44:JSON数据解析 JSON(JavaScript Object Notation)是⼀种轻量级的数据交换格式,采⽤完全独⽴于语⾔的⽂本格式,为Web应⽤开发提供了⼀种 ...
JSON数据解析及gson.jar包
从服务器端接收数据的时候,那些数据必须以浏览器能够理解的格式来发送. 服务器端的编程语⾔只能以如下 3 种格式返回数据: HTML
XML JSON JSON⼀种简单的数据格式,⽐xml更轻巧. JS ...
使⽤Gson轻松解决复杂结构的Json数据解析
最简单简洁⾼效的Json数据解析
⼀.⽆图⽆真相 ⼆.主要代码 1.导⼊jar包 拷贝fastjson.jar包到projectlibs包下 2.封装⼯具类JsonUtil.java ample.parse ...
随机推荐
IDEA:Maven项⽬不到mapper⽂件 ⽆法⾃动映射
如果你发现所有的功能都报不到映射的错,有可能是因为mapper⽂件没有被编译 在eclipse中,把资源⽂件放在src下,是可以被编译的 但是在idea中,直接把资源⽂件放在src下,如果不进⾏设置 ...
C# 在PPT中绘制形状(shape)
概述 本篇⽂章将介绍C# 在PPT幻灯⽚中操作形状(shape)的⽅法.这⾥主要涉及常规形状,如箭头.矩形.圆形.三⾓形.多边形.不规则形状等.下⾯的⽰例中,可以通过绘制形状,并设置相应格式等.⽰例包 ...
[Solution] 893. Groups of Special-Equivalent Strings
Difficulty: Easy Problem You are given an array A of strings. Two strings S and T are special-equiva ...
MPU和CPU有什么区别?
MPU(或称MP,微处理器)和CPU(中央处理器)同为处理器,但范畴不同. 计算机(即电脑)分为巨型机,⼤型机,中型机,⼩型机和微型计算机5类.这5类计算机的运算核⼼统称为CPU,⽽MPU只是微型计算 ...
缓存
缓存有很多实现⽅法,所有这些可以被分为两类,基于内存的缓存和基于磁盘的缓存: 1.  内存驻留缓存——包含在内存中临时存储数据的所有实现⽅法,通常在以下情况下使⽤: a)      应⽤程序频繁使⽤ ...
zabbix实现电话、短信、邮件报警
该报警⽅式提前说明:(1)该⽅式可以实现zabbix免费电话报警以及.短信.邮件报警,但有数量限制.详见如下:如数量不能满⾜需要以及⼈员需要,可以考虑购买收费版.(2)毕竟是免费版,电话通知要省着 ...
HDU 3047 Zjnu Stadium(带权并查集)
认识hasLayout——IE浏览器css bug的⼀⼤罪恶根源

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。