java数组转bean_JSONObject、JSONArray、Map、JavaBean相互转换

更新时间:2023-07-01 10:53:40 阅读: 评论:0

java数组转bean_JSONObject、JSONArray、Map、
JavaBean相互转换
1. JSONObject,JSON对象中有⼀个键对应⼀个值,⼤括号形式包含,{key:value}
2. json数组,使⽤中括号[ ],只不过数组⾥⾯的项也是json键值对格式的
Json对象中添加的是键值对,JSONArray中添加的是Json对象
JSON对象创建⽅法:
//----------------JsonObject创建的⽅法-----------------------------------------------------------//创建JsonObject第⼀种⽅法
JSONObject jsonObject = newJSONObject();
jsonObject.put("UrName", "kobi");
jsonObject.put("age", "34");
jsonObject.put("workIn", "ALI");//此处的"ALI"也可以替换为⼀个json{"x":"男","station":"徐
州","hoobey":"coding"}//System.out.println("jsonObject1:" + jsonObject);//jsonObject1:{"UrName":"kobi","workIn":"ALI","age":"34"}
Iterator iterator = jsonObject.keys();//⽤Iterator迭代器遍历取值,建议⽤反射机制解析到封装好的对象中
while(iterator.hasNext()) {
String key=(String) ();
String String(key);
System.out.println(value);//输出值 kobi ALI 34
}
//创建JsonObject第⼆种⽅法
HashMap hashMap = new HashMap();风冷冰箱
hashMap.put("UrName", "ZHULI");
hashMap.put("age", "30");
hashMap.put("workIn", "ALI");//System.out.println("jsonObject2:" + JSONObject.fromObject(hashMap));//jsonObject2:{"UrName":"ZHULI","workIn":"ALI","age":"30"}
//----------------JSONArray创建的⽅法-----------------------------------------------------------//⼀:遍历JsonArray
String str = "[{name:'a',value:'aa'},{name:'b',value:'bb'},{name:'c',value:'cc'},{name:'d',value:'dd'}]"; //⼀个未转化的字符串
JSONArray json = JSONArray.fromObject(str); //⾸先把字符串转成 JSONArray 对象
if (json.length() > 0) {for (int i = 0; i < json.length(); i++) {
JSONObject job= JSONObject(i); //遍历 jsonarray 数组,把每⼀个对象转成 json 对
象//System.out.println(job);//{"name":"a","value":"aa"} {"name":"b","value":"bb"} {"name":"c","value":"cc"}.....//System.out.("name"));//a b c d
}
}
//创建JsonArray⽅法2
ArrayList arrayList = new ArrayList();
arrayList.add("kobi");
arrayList.add("34");
arrayList.add("ALI");//System.out.println("jsonArray2:" + JSONArray.fromObject(arrayList));//jsonArray2:["kobi","34","ALI"]
@Testpublic voidtest0105() {/*取出name4值过程步骤: 1.将以上字符串转成JSONArray对象 2.取出对象的第⼀项,JSONObject 3.取出name1的值JSONObject
4.然后取出name2的值JSONObject对象
5.取出name4的值value2
**/
/*记住":"前是键,符号后是值 ⼤括号成对找 ⼀层层拨开就清楚了*/String str= "[{name1:{name2:{name3:'value1',name4:'value2'}}}, {}]";
JSONArray jsonArray= JSONArray.fromObject(str);//将结果转成JSONArray对象的形式
JSONObject getJsonObj= JSONObject(0);//获取json数组中的第⼀项
JSONObject json= JSONObject("name1").getJSONObject("name2");//{"name4":"value2","name3":"value1"}
Object value = ("name4");
System.out.println(value);//value2
}
@Testpublic voidtest01051() {
JSONObject json= newJSONObject();
JSONArray jsonArray= newJSONArray();
json.put("key", "value");//JSONObject对象中添加键值对
jsonArray.put(json);//将JSONObject对象添加到Json数组中
System.out.println(json);
System.out.println(jsonArray);
}
相互转化如下:
将javaBean转换成Map:怎么玩骰子
public static MapBeantoMap(Object javaBean) {
Map result = new HashMap();
Method[] Class().getDeclaredMethods();for(Method method : methods) {try{if
(Name().startsWith("get")) {
/
/Name().startsWith("get")表⽰从找到get开头的⽅法
String field= Name();//getName getPassword
field = field.substring(field.indexOf("get") + 3);//Name Password
field = LowerCa().charAt(0) + field.substring(1);//name password
Object value = method.invoke(javaBean, (Object[]) null);
result.put(field,null == value ? "": String());
}
}catch(Exception e) {
}
}returnresult;
}
将json对象转换成Map:
@SuppressWarnings("unchecked")public static MapJsontoMap(JSONObject jsonObject) {
Map result = new HashMap();
Iterator iterator =jsonObject.keys();
String key= null;
String value= null;while(iterator.hasNext()) {
();
String(key);
名字男生result.put(key, value);
}returnresult;
}
将javaBean转换成JSONObject:
public staticJSONObject toJSON(Object bean) {return newJSONObject(BeantoMap(bean));
摇篮摇}
将map转换成Javabean:洋芋疙蛋
public static Object toJavaBean(Object javabean, Mapdata) {
少气
Method[] Class().getDeclaredMethods();for(Method method : methods) {try{if (Name().startsWith("t")) {
String field= Name(); //tName tPassword
field = field.substring(field.indexOf("t") + 3);//Name Password
field = LowerCa().charAt(0) + field.substring(1);//name password
method.invoke(javabean, newObject[]
{
<(field)
});
}
}catch(Exception e) {
e.printStackTrace();
}
}returnjavabean;
}
⽅法调⽤如下:
/*javaBean转换成Map*/@Testpublic voidtest1(){
Map map = BeanConverter.BeantoMap(new Stu("hoobey","123"));//Map map = Ma
p(new Stu("hoobey", "213"));//Set> entry = Set();//Set集合中存储的是Map.Entry entry//推荐使⽤这种map遍历 尤其是容量⼤的时候Set()返回此映射中包含的映射关系的 Set视图
for(Map.Entryentry : Set()){
System.out.println("key="+Key()+",value="+Value());
}
}
/** 将json对象转换成Map*/@Testpublic voidtest2(){
JSONObject json=newJSONObject();
json.put("hoobey","123"); //{"hoobey":"123"}
Map toMap =BeanConverter.JsontoMap(json);for(Map.Entryentry : Set()){
System.out.println("key="+Key()+",value="+Value());
}
}
山水意境诗句/*将javaBean转换成JSONObject*/@Testpublic voidtest3(){
JSONObject toJSON= JSON(new Stu("hoobey", "123"));
System.out.println(toJSON);//{"password":"123","name":"hoobey"}
}
暑假第一课/*将map转换成Javabean map中存放的键值⼀定和bean相对应*/@Testpublic voidtest4(){
Map map = new HashMap();
map.put("name","hoobey");
map.put("password","123");
Object o= JavaBean(newStu(), map);
System.out.println(o);//Stu{name='hoobey', password='123'}
}

本文发布于:2023-07-01 10:53:40,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1071993.html

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

标签:对象   添加   包含
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图