栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

json转换大全 1.8遍历

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

json转换大全 1.8遍历

目录

1.JSON 的语法规则是怎样的?

2.JAVA中json和各种类型的转换大全

1. JAVA对象转JSON字符串

2. JSON字符串转JSON对象

    3.JSON字符串转JAVA简单对象

4.JsonArray中添加json数据

解析json实例

2.JDK1.8中遍历List集合的几种方式

一、for循坏

二、forEach循坏与for循坏相比,forEach循坏更加简洁明了。

三、迭代器

1、Iterator

2、ListIterator

四、Lambda表达式


1.JSON 的语法规则是怎样的?

数组(Array)用方括号(“[]”)表示。对象(0bject)用大括号(“{}”)表示。名称/值对(name/value)组合成数组和对象。名称(name)置于双引号中,值(value)有字符串、数值、布尔值、null、对象和数组。并列的数据之间用逗号(“,”)分隔

[{"sku":"859545","num":"1","m_price":"18.9","j_price":"14.9"}]
{
    "name": "xdr630",
    "favorite": "programming"
}
[1,2,"three","four",true,false,null,[1,2],{"name":"兮动人"}]

 

2.JAVA中json和各种类型的转换大全

阿里提供的JSON包实现json类型的互转



         	com.alibaba
         	fastjson
         	1.2.60
        

1. JAVA对象转JSON字符串
    //java对象转json字符串
    
        User  user= new User();
        user.setName("lq");
      
        String s = JSON.toJSonString(data);
        System.out.println(s);
        //输出结果{"Name":"lq"}
    

2. JSON字符串转JSON对象
 //json字符串转json对象
  
        String s="{"Name":"lq"}";
        JSonObject jsonObject = JSON.parseObject(s);
      
        String name= jsonObject.getString("Name");
        System.out.println("name ="+name);//add
      
        System.out.println("jsonObject ="+jsonObject);
   //输出结果
        //Name =lq
        //jsonObject ={"Name":"lq"}


    3.JSON字符串转JAVA简单对象
String s ="{"Name":"lq"}";
User user= JSON.parseObject(s, User.class);
System.out.println("user对象"+user.toString());
System.out.println("name="+user.getName()");
//data对象Data{"Name":"lq"}
//Name=lq

4.JsonArray中添加json数据


//创建JSonObject
        JSonObject paramJson= new JSonObject();
        paramJson.put("type","1");
        paramJson.put("switchType","2");

//创建JSonArray
        JSonArray paramArray = new JSonArray();

//将JSONObject放入JSONArray中
        paramArray.add(paramJson);
        JSonObject json = new JSonObject();
        json.put("sysId", "sysId");
        json.put("sign", "sign");

//将JSONArray放入JSONObject中
        json.put("param", paramArray);
        System.out.println(json.toString());

//{"sysId":"sysId","param":[{"switchType":"2","type":"1"}],"sign":"sign"}


解析json实例
{
    "success": true,
    "result": [
        {
            "id": 652,
            "name": "数码",
            "pid": 0,
            "level": 1,
            "childs": [
                {
                    "id": 654,
                    "name": "摄影摄像",
                    "pid": 652,
                    "level": 2
                },
                {
                    "id": 828,
                    "name": "影音娱乐",
                    "pid": 652,
                    "level": 2
                }
               
            ]
        }
   ],
    "return_code": "",
    "return_msg": ""
}

 

  String lqcategoryparent ="要解析的json字符串";
        JSonObject lqcategoryjson = JSON.parseObject(lqcategoryparent);
        JSonArray result = (JSONArray) JSONPath.eval(lqcategoryjson, "$.result");
        //json数组遍历
        result.forEach(lqcategoryobj->{
            JSonObject infojo= (JSONObject) lqcategoryobj;
            String  categoryid=infojo.getString("id");
            String categoryName=infojo.getString("name");
            String categoryLevel=infojo.getString("level");
            String childs=infojo.getString("childs");
            JSonArray childsjson = JSON.parseArray(childs); //获取到childs数组
    //json数组遍历
            childsjson.forEach(lqchilds->{
                JSonObject lqchildsobj= (JSONObject) lqchilds;
                String  categoryid2=lqchildsobj.getString("id");
                String categoryName2=lqchildsobj.getString("name");
                String categoryLevel2=lqchildsobj.getString("level");
            });
        });

{
    "sn_responseContent":{
        "sn_body":{
            "queryProdImage":{
                "resultInfo":[
                    {
                        "skuId":"12310588118",
                        "urls":[
                            {
                                "path":"http://imgservice1.suning.cn/uimg1/b2c/image/VKitti0Sy9lhYde-D3Hh5w.jpg_800w_800h_4e",
                                "primary":1,
                                "pictureLocation":1
                            },
{
                                "path":"http://imgservice1.suning.cn/uimg1/b2c/image/jQx5mrAnkji7zhQ80lkjqQ.jpg_800w_800h_4e",
                                "primary":0,
                                "pictureLocation":1
                            }
                        ]
                    }
                ]
            }
        }
    }
}

String Image="上面要解析的json";
JSonObject jsonImage  = JSON.parseObject(Image);
Object ProdImage = JSONPath.eval(jsonImage, "$.sn_responseContent.sn_body.queryProdImage"); //图片
JSonArray aoyiImage = (JSONArray) JSONPath.eval(ProdImage, "$.resultInfo");
    List aoyiImageList = (List) aoyiImage;
        for (int l = 0; l < aoyiImageList.size();l++) {
            Object oskus = aoyiImageList.get(l);
            Map Detail = (Map) oskus;
            Object urls = Detail.get("urls");
            JSonArray path = (JSONArray) JSONPath.eval(urls, "$.path");
//path下没有对象了 可以直接遍历
   path.forEach(pathlist->{
                       System.out.println(pathlist);
                   });
           }
2.JDK1.8中遍历List集合的几种方式


一、for循坏
public class ForList {

    public static void main(String[] args) {
        List list = new ArrayList();
        list.add(1);
        list.add(2);
        list.add(3);
        
        for (int i = 0, length = list.size(); i < length; i++) {
            System.out.println(list.get(i));
        }

    }

}


二、forEach循坏
与for循坏相比,forEach循坏更加简洁明了。
public class ForEachList {

    public static void main(String[] args) {
        List list = new ArrayList();
        list.add(1);
        list.add(2);
        list.add(3);
        
        for (Integer it : list) {
            System.out.println(it);
        }

    }

}


三、迭代器


1、Iterator
public class IteratorTest {

    public static void main(String[] args) {
        List list = new ArrayList();
        list.add(1);
        list.add(2);
        list.add(3);
        
        Iterator it = list.iterator();
        while(it.hasNext()) {
            System.out.println(it.next());
        }

    }

}


2、ListIterator

Iterator的子类,只能用于List集合。

public class ListIteratorTest {

    public static void main(String[] args) {
        List list = new ArrayList();
        list.add(1);
        list.add(2);
        list.add(3);
        
        ListIterator it = list.listIterator();
        while(it.hasNext()) {
            System.out.println(it.next());
        }

    }

}


四、Lambda表达式


 

public class LambdaTest {

    public static void main(String[] args) {
        List list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);
        
        list.forEach(item -> {
            System.out.println(item);
        });
    }

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/777031.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号