java之数据转换(Java与json以及map和list的解析)
来源:互联网 发布:上网流量统计软件 编辑:程序博客网 时间:2024/05/22 13:40
最近一直在整传输数据的事,当然一直在用json格式传递,自然就免不了数据之间格式的转化,包括json转java的bean对象,封装解析map、list等。今天就大概记录一下这些方法,留待以后使用。
一、json
1.将json转化为java对象
json串为:
String s ={"id":"1","name":"shanxi","librays":[{"libraryid":"1","libraryName":"centralLibray","bookCount":"10021"}]};
声明实体类
public class City { private int id; private String name; private List<Library> librays; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public List<Library> getLibrays() { return librays; } public void setLibrays(List<Library> librays) { this.librays = librays; }}
public class Library { private int libraryid; private String libraryName; private String bookCount; public int getLibraryid() { return libraryid; } public String getBookCount() { return bookCount; } public void setBookCount(String bookCount) { this.bookCount = bookCount; } public void setLibraryid(int libraryid) { this.libraryid = libraryid; } public String getLibraryName() { return libraryName; } public void setLibraryName(String libraryName) { this.libraryName = libraryName; }}
实现:这个有两步,一步是将嵌套的json(即子实体类封装到classMap中),第二步则是加个json转化为javabean对象。
Map<String,Class> classMap = new HashMap<String,Class>(); classMap.put("librays", Library.class); JSONObject obj = new JSONObject().fromObject(s); City city = JSONObject.toBean(obj,City.class,classMap);
除了json-lib-2.2-jdk15.jar包中的这种方法外,谷歌的gson也非常灵活的处理这种问题
另外,还有jsonObject的一些基本方法:
如:
//将json数组形式的字符串转化为jsonArray对象JSONArray arr= JSONArray.fromObject(s);//将json形式的字符串转化为json对象JSONObject json = JSONObject.fromObject(s);//将json对象转化为字符串json.toString();/arr.toString//获取JSONArray的第n个jsonObject对象arr.getJSONObject(n);//获取JSON对象的某一个值arr.getJSONObject(n).getString(key);
2.遍历json对象
//遍历json字符串(json对象)JSONObject jsonObject = new JSONObject();jsonObject = jsonObject.fromObject(s);Iterator iterator = jsonObject.keys();while(iterator.hasNext()){ key = (String) iterator.next(); value1 = jsonObject.getString(key); }
3.遍历json数组
只不过在遍历jsonObject外面套一个for循环就OK
4.另外,
注意java定义的结构化的对象,如map、json对象或数组等不能令其等于null,令其为null后就不是该结构的对象了,因此不能再进行该结构的一些操作了;
可以为new对象,如new JSONArray(),会把该json数组置为空。
二、map
1.遍历map
方法一:
List<HashMap> rlnList = new ArrayList<HashMap>();Map<String,String> map =rlnList.get(i);for(Map.Entry<String, String> entryParam :map.entrySet()){System.out.println("key="+entryParam.getKey()+",value="+entryParam.getValue());}
方法二:
不知道map中键值对的类型可用这种方法
Map mapc = entry.getValue().get(i);Iterator iter = mapc.entrySet().iterator(); while(iter.hasNext()){ Map.Entry entryc = (Entry) iter.next(); System.out.println("key="+entryc.getKey()+",value="+entryc.getValue());}
2.合并两个map
for(int i =0;i<map2.size();i++){map1.add(map2.get(i));}
3.定义map
Map map = new HashMap();map.put("key1","value1");map.put("key2","value2");
4.获取map的值
map.get("key1");
5.判断map是否为空
(map.size=0与map.isEmpty()差不多)
if(map!=null && !map.isEmpty()){这个里面取list中的值}else{做其他处理}
三、list
1.遍历list
List list = new ArrayList();list.get(i);
2.定义list
list.add(i,"value");
3.修改list
list.set(i,"value");
4.判断list是否为空
if(list!=null && !list.isEmpty()){
这个里面取list中的值
}else{
做其他处理
}
0 0
- java之数据转换(Java与json以及map和list的解析)
- java解析json与map,list相互之间的转换
- java方式的将java对象以及list或者map转化为json数据,json转换为object或者map
- java解析json格式的数据,其中json是List和Map格式
- JSONObject.fromObject(map)(JSON与JAVA数据的转换)
- JSONObject.fromObject(map)(JSON与JAVA数据的转换)
- JSONObject.fromObject(map)(JSON与JAVA数据的转换)
- JSONObject.fromObject(map)(JSON与JAVA数据的转换)
- JSONObject.fromObject(map)(JSON与JAVA数据的转换)
- JSONObject.fromObject(map)(JSON与JAVA数据的转换)
- JSONObject.fromObject(map)(JSON与JAVA数据的转换)
- JSONObject.fromObject(map)(JSON与JAVA数据的转换)
- JSONObject.fromObject(map)(JSON与JAVA数据的转换)
- JSONObject.fromObject(map)(JSON与JAVA数据的转换)
- JSONObject.fromObject(map)(JSON与JAVA数据的转换)
- JSONObject.fromObject(map)(JSON与JAVA数据的转换)
- JSONObject.fromObject(map)(JSON与JAVA数据的转换)
- java转换xml、list、map和json
- java2 day03 XML DOM4J
- 搭建python的eclipse开发环境并创建简单的python程序
- ubuntu 16.04+最新caffe安装
- Android mk编译OkHttp3
- 蓝桥杯——数组、函数问题典例一(2017.1.17)
- java之数据转换(Java与json以及map和list的解析)
- svn 过滤词
- VM中添加磁盘
- mysql通过解压配置文件安装方法
- 史上最全财会人职业发展与考证指南
- 判断一个整数是否为回文数
- 直角三角形的判断
- iOS真机调试失败(一)
- android中ListView嵌套GridView,或者ScrollView嵌套GridView