IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> json转换大全 1.8遍历 -> 正文阅读

[开发测试]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类型的互转


<dependency>
         	<groupId>com.alibaba</groupId>
         	<artifactId>fastjson</artifactId>
         	<version>1.2.60</version>
        </dependency>

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<Integer> list = new ArrayList<Integer>();
?? ??? ?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<Integer> list = new ArrayList<Integer>();
?? ??? ?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<Integer> list = new ArrayList<Integer>();
?? ??? ?list.add(1);
?? ??? ?list.add(2);
?? ??? ?list.add(3);
?? ??? ?
?? ??? ?Iterator<Integer> 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<Integer> list = new ArrayList<Integer>();
?? ??? ?list.add(1);
?? ??? ?list.add(2);
?? ??? ?list.add(3);
?? ??? ?
?? ??? ?ListIterator<Integer> it = list.listIterator();
?? ??? ?while(it.hasNext()) {
?? ??? ??? ?System.out.println(it.next());
?? ??? ?}

?? ?}

}


四、Lambda表达式


?

public class LambdaTest {

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

}

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-03-30 18:55:28  更:2022-03-30 18:57:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 0:36:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码