Java用JSONObject-lib来解析json串
直接贴代码:(所需jar包:json-lib.jar,可能会关联一些其它的jar包,请自行搜索.) import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map; import net.sf.json.JSONArray;
import net.sf.json.JSONObject; public class JsonParser { @SuppressWarnings("rawtypes")
public void test() {
Map m = this.testJson("jsonString");
System.out.println(((Map) ((List) m.get("test")).get(0)).get("test_title"));
} @SuppressWarnings({ "rawtypes", "unchecked" })
public Map testJson(String str) {
JSONObject json = JSONObject.fromObject(str);
Iterator<?> it = json.keySet().iterator();
Map map = new HashMap();
while (it.hasNext()) {
String key = (String) it.next();
String value = json.getString(key);
if (this.isString(value)) {
map.put(key, value);
}
if (this.isJson(value)) {
map.put(key, this.testJson(value));
}
if (this.isJsonArray(value)) {
map.put(key, this.testJsonArray(value));
} }
return map;
} @SuppressWarnings({ "unchecked", "rawtypes" })
public List testJsonArray(String str) {
JSONArray jsonArr = JSONArray.fromObject(str);
List list = new ArrayList();
for (Object json : jsonArr) {
String jsonStr = json.toString();
if(this.isString(jsonStr)){
list.add(jsonStr);
}
if(this.isJson(jsonStr)){
list.add(this.testJson(jsonStr.toString()));
}
if(this.isJsonArray(jsonStr)){
list.add(this.testJsonArray(jsonStr.toString()));
}
}
return list;
} public boolean isJson(String s) {
boolean flag = true;
try {
JSONObject.fromObject(s);
} catch (Exception e) {
flag = false;
}
return flag;
} public boolean isJsonArray(String s) {
boolean flag = true;
try {
JSONArray.fromObject(s);
} catch (Exception e) {
flag = false;
}
return flag;
} public boolean isString(String s) {
return !this.isJson(s) && !this.isJsonArray(s);
} public static void main(String[] args) {
JsonParser tj = new JsonParser();
tj.test(); } }
Java用JSONObject-lib来解析json串的更多相关文章
- Java开发笔记(一百零八)JSON串的定义和解析
前面提到URL尾巴支持添加请求参数,具体格式形如“参数A名称=A参数值&参数B名称=B参数值”,可是这种格式只能传递简单的键值对信息,不能传递结构化数据,也无法传递数组形式的参数,因而它不适用 ...
- C++ 解析json串
首先, C++ 解析json串,需要用到第三方库(json_vc71_libmtd.lib).然后,VS2010,创建项目json_read,配置项目属性.最后,拷贝下面的代码就可以看到效果了. #i ...
- SpringMVC Jackson 库解析 json 串属性名大小写自动转换问题
问题描述 在项目开发中,当实体类和表中定义的某个字段为 RMBPrice,首字母是大写的,sql 查询出来的列名也是大写的 RMBPrice,但是使用 jquery 的 ajax 返回请求响应时却出错 ...
- 怎么解析json串在.net中
以前知道一种解析json串的方法,觉得有点麻烦.就从别的地方搜到了另一种 string json = vlt.getlist(); JObject jo = JObject.Parse(json); ...
- 在.net中怎么解析json串 [Error reading JObject from JsonReader. Current JsonReader item is not an obj]
编辑时间:2017-05-10,增加一种转化list的方法 一.以前知道一种解析json串的方法,觉得有点麻烦.就从别的地方搜到了另一种 string json = vlt.getlist(); JO ...
- java使用jackson生成和解析JSON
java使用jackson生成和解析JSON 1.导包 2.生成json和解析json package test; import com.fasterxml.jackson.core.JsonProc ...
- java解析json串获取key和value
网上例子巨多,纯属个人笔记: JSONObject maleArray = maleObject.getJSONObject("extension"); Iterator<S ...
- 使用JSONObject生成和解析json
1. json数据类型 类型 描述 Number 数字型 String 字符串型 Boolean 布尔型 Array 数组,以"[]"括起来 Object 对象,类似于C中的结构体 ...
- 【转载】使用JSONObject生成和解析json
1. json数据类型 类型 描述 Number 数字型 String 字符串型 Boolean 布尔型 Array 数组 Object 对象 null 空值 (1)json中不区分整数.小数等类型, ...
随机推荐
- Python操作记录
1.写入中文出错,需要执行 reload(sys) sys.setdefaultencoding('utf8') 2.json.dump中文写入为\xxxx ensure_ascii=False
- Express application generator的使用
首先拷贝express官网的一篇文章: (http://expressjs.com/en/starter/generator.html ) Express application generator ...
- JavaScript 判断一个对象{}是否为空对象的简单方法
第一种: function isEmptyObject(obj) { for (var key in obj) { //返回false,不为空对象 return false; } return tru ...
- Lintcode: Add Binary
C++ class Solution { public: /** * @param a a number * @param b a number * @return the result */ str ...
- intel vt
EPT和VPID技术是内存虚拟化技术, 是页表扩充技术Extended Page Table (EPT) 的缩写, 是VT-x技术的一部分. 内存虚拟化的主要任务是实现地址空间的虚拟化,内存虚拟化是通 ...
- HDS推出HUS中端阵列 文件、块和对象统一存储
http://storage.chinabyte.com/86/12320086.shtml http://storage.chinabyte.com/134/12324134.shtml 日立数据系 ...
- Java Web部署到tomcat后,使用动态编译无法找到相关类的解决方案
一.问题 动态编译java文件时(这个java文件虽引用了第三方jar包),如果这个过程发生在java命令行程序中,则正常编译.如果发生在JavaWeb中,然后此Java部署到Tomcat之后,执行动 ...
- C++ 第八课 标准c字符和字符串
atof() 将字符串转换成浮点数 atoi() 将字符串转换成整数 atol() 将字符串转换成长整型数 isalnum() 当字母或数字字符时, 返回真值 isalpha() 当字母字符时, 返回 ...
- https调试
我们知道https通信在开始时会发送一个METHOD为CONNECT的请求,让服务器将证书以及相关的信息返回给浏览器,在没有得到这些信息之前,浏览器是不会信任服务器发来的任何数据的.So现在我们要让F ...
- MySql8.0数据库链接报错The driver has not received any packets from the server
1.我使用MySql数据库8.0版本,然后驱动改成了 jdbc.driver=com.mysql.cj.jdbc.Driver jdbc.url=jdbc:mysql://127.0.0.1:3306 ...