
我们需要先把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字符串获得该对象属性呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)