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

举报
brucexiaogui 发表于 2021/11/26 00:00:51 2021/11/26
3k+ 0 0
【摘要】 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.接收返回值并定义为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(); 

  
 

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.接收返回值并定义为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();

  
 

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

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

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

作者其他文章

评论(0

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

    全部回复

    上滑加载中

    设置昵称

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

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

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