Beanshell解析json-解析简单&复杂json数据

举报
brucexiaogui 发表于 2021/11/26 00:00:51 2021/11/26
【摘要】 Beanshell解析json-解析简单&复杂json数据 1.概述 如果在beanshell中解析json数据,那么这篇文章你get到了重点。不仅给出了解决方案,同时还理清了解决的思路...

Beanshell解析json-解析简单&复杂json数据

1.概述

如果在beanshell中解析json数据,那么这篇文章你get到了重点。不仅给出了解决方案,同时还理清了解决的思路。

2.解析单层json

  • json数据格式如下
{
   "status":200,
   "code": 0,
   "message": "成功",
   "data": {
       "last": false,
       "totalPages": 7,
       "numberOfElements": 3,
       "first": true,
       "totalElements": 64,
       "size": 10
             }
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 解析思路

1.接收返回值并定义为String 类型
2.将接收到的Sting 转换为JSONObject
3. 调用JSON对象中get()方法获得键值对中的值

  • 解析代码
//先引入Jar包   
import org.json.*;
//获取请求返回值。只能获取到String  
String response_data=prev.getResponseDataAsString();
//将string 类型返回值构造成Jsonobject 对象 
JSONObject data_obj= new JSONObject(response_data); 
 //获取Json中 first的值
String apps_str= data_obj.get("data").get("first").toString(); 

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

3.解析多层json

  • json数据
{
         "status":200,
         "code":0,
         "message":"成功",
         "data":{
                   "last":false,
                   "totalPages":7,
                   "numberOfElements":3,
                   "first":true,
                   "totalElements":64,
                   "size":10,
                   "content":[
{
                                     "patrolJobId":"ff80808160058467016028b15b120cd0",
                                     "pathName":"安管B班12月巡更",
                                     "expectedStartTime":"2017-12-06T13:00:00+0800",
                                     "expectedEndTime":"2017-12-06T19:00:00+0800",
                                     "currentSystemTime":"2017-12-06T16:18:24+0800"
                            },
                            {
                                     "patrolJobId":"ff80808160058467016028b15b130cd1",
                                     "pathName":"安管B班12月巡更",
                                     "expectedStartTime":"2017-12-06T19:00:00+0800",
                                     "expectedEndTime":"2017-12-07T01:00:00+0800",
                                     "currentSystemTime":"2017-12-06T16:18:25+0800"
                            }
                   ]
         },
         "number":0
}

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 解析思路

1.接收返回值并定义为String 类型
2.将接收到的Sting 转换为JSONObject
3.获取jsonArrary
4.调用JsonArray对象中get()方法获得键值对中的值

  • 解析代码
import org.json.*;  
 
//获取请求返回值。只能获取到String 
 
String response_data=prev.getResponseDataAsString(); 
 
JSONObject data_obj= new JSONObject(response_data);
 
JSONArray apps_array= (JSONArray) ((JSONObject)data_obj.get("data")).get("content");
 
//获取第一串json 的patrolJobId
 
String patrolJobId= ((JSONObject)apps_array.get(0)).get("patrolJobId").toString();

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

文章来源: brucelong.blog.csdn.net,作者:Bruce小鬼,版权归原作者所有,如需转载,请联系作者。

原文链接:brucelong.blog.csdn.net/article/details/109725286

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。