Map类型获取json数组,如何提取值

Map类型获取json数组,如何提取值,第1张

我们需要先把json字符串转化为netsfjsonJSONObject对象,java中这样就可以完成json字符串到Map的转换了。

1将数组转换为JSON:String[] arr = {"asd","dfgd","asd","234"};JSONArray jsonarray = JSONArrayfromObject(arr);Systemoutprintln(jsonarray);

2对象转换成JSON:UserInfo user = new UserInfo(1001,"张三");JSONArray jsonArray = JSONArrayfromObject(user);Systemoutprintln( jsonArray );

3把Map转换成json, 要使用jsonObject对象:Map<String, Object> map = new HashMap<String, Object>();mapput("userId", 1001);mapput("userName", "张三");mapput("userSex", "男");JSONObject jsonObject = JSONObjectfromObject(map);Systemoutprintln(jsonObject);

4把List转换成JSON数据:List<UserInfo> list = new ArrayList<UserInfo>();UserInfo user = new UserInfo(1001, "张三");listadd(user);listadd(user);listadd(user);JSONArray jsonArray = JSONArrayfromObject(list);Systemoutprintln(jsonArray);

Json字符串就是字符串

,只不过字符串的内容格式是json格式的

json对象是对象

,是json格式的对象

,什么是json格式啊

就是

键值对,

键可以是字符串也可以数字

,值可以是字符串

也是可以是数值,还可以是数组,但是有时候json对象写成json格式

的对象时,

又跟js的对象的写法非常相似

因为我们经常

var

obj={name:”name“,age:10}这个中非常相似

private static String Encode() {

JSONObject obj = new JSONObject();

ArrayList<String> array1 = new ArrayList<String>();

array1add("Class A");

array1add("Class B");

objput(CLASS_DIAGRAM_SAME, array1);

ArrayList<String> array2 = new ArrayList<String>();

array2add("Class C");

array2add("Class D");

objput(CLASS_DIAGRAM_1, array2);

ArrayList<String> array3 = new ArrayList<String>();

array3add("Class E");

array3add("Class F");

objput(CLASS_DIAGRAM_2, array3);

return objtoJSONString();

}

//=================================

CLASS_DIAGRAM_SAME等是final字符串,我就不贴了,简单的生成,一看就懂

下面两段是简单的读取,你可以举一反三,很容易明白

//=================================

Systemoutprintln(objget(CLASS_DIAGRAM_SAME));

Systemoutprintln(objget(CLASS_DIAGRAM_1));

Systemoutprintln(objget(CLASS_DIAGRAM_2));

Systemoutprintln("Same classes:");

ArrayList<String> array1 = (ArrayList<String>)objget(CLASS_DIAGRAM_SAME);

for (String same : array1) {

Systemoutprintln(same);

}

你这个JSON格式,就是数组里面放数组,所以是,取JSON对象》取JSON数组data》取JSON数组。

import javautilArrayList;import javautilIterator;import netsfjson;public class MainClass {/ @param args/public static void main(String[] args) {JSONObject jsonObj = JSONObjectfromObject(JsonDatagetData());JSONArray jsonArr = jsonObjgetJSONArray("data");Iterator<JSONArray> itr = jsonArriterator();JSONArray temp;while(itrhasNext()) {temp = itrnext();Systemoutprintln("===========Each JSONArray=========");for(int i = 0; i<tempsize(); i++) {Systemoutprintln(tempget(i));}}}private static class JsonData {private static String getData() {return "{\"data\":[[5000235,2,3441,8,17,\"北京测试\",\"10000101111\",\"\",\"\",\"100001\",\"\",\"2011-09-23 17:20:07\",18,\"vhcDefaultPwd\",1,0,\"2011-09-20 00:00:00\",12,0,380,\"测试\",213,1,0,0,0,0,0,\"2012-11-05 14:35:23\",\"\"],[5000236,27,3442,10,17,\"北京测试2\",\"1230000\",\"\",\"\",\"2010920002\",\"111111\",\"2011-09-23 17:20:08\",18,\"vhcDefaultPwd\",1,0,\"2011-09-20 00:00:00\",12,0,380,\"测试2\",213,1,0,0,0,0,0,\"2012-11-05 14:35:23\",\"\"]]}";}}}

Json字符串就是字符串 ,只不过字符串的内容格式是json格式的

json对象是对象 ,是json格式的对象 ,什么是json格式啊 就是 键值对, 键可以是字符串也可以数字 ,值可以是字符串 也是可以是数值,还可以是数组,但是有时候json对象写成json格式 的对象时, 又跟js的对象的写法非常相似

因为我们经常 var obj={name:”name“,age:10}这个中非常相似

我们需要先把json字符串转化为netsfjsonJSONObject对象,java中这样就可以完成json字符串到Map的转换了。

1将数组转换为JSON:String[] arr = {"asd","dfgd","asd","234"};JSONArray jsonarray = JSONArrayfromObject(arr);Systemoutprintln(jsonarray);

2对象转换成JSON:UserInfo user = new UserInfo(1001,"张三");JSONArray jsonArray = JSONArrayfromObject(user);Systemoutprintln( jsonArray );

3把Map转换成json, 要使用jsonObject对象:Map<String, Object> map = new HashMap<String, Object>();mapput("userId", 1001);mapput("userName", "张三");mapput("userSex", "男");JSONObject jsonObject = JSONObjectfromObject(map);Systemoutprintln(jsonObject);

4把List转换成JSON数据:List<UserInfo> list = new ArrayList<UserInfo>();UserInfo user = new UserInfo(1001, "张三");listadd(user);listadd(user);listadd(user);JSONArray jsonArray = JSONArrayfromObject(list);Systemoutprintln(jsonArray);

5

有两种方法实现:

(1)直接转换:

创建JSONArray对象、JSONObject对象,通过put方法将其数据以键值对的形式填充,如例:

//假如有一个Java实体类Person,包括以下属性:phone、sex、married、address。

ArrayList<Person> persons = new ArrayList<Person>();

for (int i = 0; i < 3; i++) {

personsadd(new Person("13867", "女", true, "北京朝阳区"));//填充Java实体类集合

}

JSONArray array = new JSONArray();// Json格式的数组形式

JSONObject obj;//json格式的单个对象形式

for (int i = 0; i < personssize(); i++) {

obj = new JSONObject();

//依次填充每一个Java实体对象

try {

objput("phone", personsget(i)getPhone());//json通过put方式以key-value形式填充

objput("sex", personsget(i)getSex());

objput("married", personsget(i)getMarried());

objput("address", personsget(i)getAddress());

arrayput(obj);//将JSONObject添加入JSONArray

} catch (JSONException e) {

eprintStackTrace();

}

}

(2)通过GSON工具实现:

只需要创建GSON对象,通过toJson方法转换即可。如例:

//模拟Java数据

Person person = new Person("敏敏", 23, "女", "北京市海淀区");

//创建GSON对象

Gson gson = new Gson();

//调用toJson方法即可转换为字符串的json格式

String json = gsontoJson(person);

以上就是关于Map类型获取json数组,如何提取值全部的内容,包括:Map类型获取json数组,如何提取值、java 获取json字符串判断是json对象还是json数组、json的属性是对象,怎么用java解析该json字符串获得该对象属性呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10144706.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存