JSON字符串处理

本文介绍了如何处理JSON字符串,包括从JSON字符串中提取JSONObject和JSONArray的值。通过示例展示了如何使用JSONObject的getString方法获取键对应的值,以及如何在JSONArray中通过索引获取JSONObject并进一步获取其内部键的值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JSON字符串处理

在接口测试中我们需要对获取到的json字符串做一些处理,从json字符串中获取到指定的字段来进行校验,下面来总结一下对json字符串的一些处理。

JSONArray与JSONObject简介

数据表示形式

JSONObject的数据是用 { } 来表示的,
例如: { “id” : “123”, “name” : “hello”, “title” : “work”, “content” : null }
而JSONArray,顾名思义是由JSONObject构成的数组,用 [ { } , { } , …… , { } ] 来表示
例如: [ { “id” : “123”, “name” : “hello”, “title” : “work” } , { “content” : null} ] ;
表示了包含2个JSONObject的JSONArray。
可以看到一个很明显的区别,一个最外面用的是 { } ,一个最外面用的是 [ ] ;

  1. 第一种json字符串处理
    String jsonstr="{“id”:“66”,“name”:“helloword”,“age”:“18”}";
    GetJsonValue gjv=new GetJsonValue();
    gjv.getJsonValue(jsonstr,“name”);
    gjv.getJsonValue(jsonstr,“id”);
    /**

    • Description:根据json字符串和key值得到key对应的value值,格式如下:{key1:value,key2:value2}

    • @param jsonstr

    • @param key
      */
      public String getJsonValue(String jsonstr,String key){
      String valuestr="";
      if(jsonstr==null || jsonstr.trim().length()==0){
      return null;
      }
      try {
      JSONObject obj=new JSONObject(jsonstr);
      valuestr=obj.getString(key);
      System.out.println(“valuestr=”+valuestr);

      } catch (JSONException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      }
      return valuestr;
      }

  2. 第二种json字符串处理
    String str="{“languages”: [{ “langIsoCode”: “en_US”, “langActiveFlag”: true, “langName”: “United States/English” }], “currencies”: [{ “currencyIsoCode”: “USD”, “currencyActiveFlag”: true, “currencyBaseFlag”: false }]}";
    gjv.getJsonArrayValue(str, “languages”,0,“langIsoCode”);
    /**

    • 根据key值获取一个JSONArray,在JSONArray中再根据key2值获取对应的value值
    • @param jsonstr -json字符串,格式如下:{key:[{key1:value1},{}]}
    • @param key:json字符串中的key
    • @param index:JSONArray的索引
    • @param key2:JSONObject对应的key
    • @return
      */

    public String getJsonArrayValue(String jsonstr,String key,int index,String key1){
    JSONArray jsonArray=new JSONArray();
    String getStr="";
    if(jsonstr==null || jsonstr.trim().length()==0){
    return null;
    }
    try {
    JSONObject obj=new JSONObject(jsonstr);
    jsonArray=obj.getJSONArray(key);
    int arraySize=jsonArray.length();
    System.out.println(“arraySize=”+arraySize);
    JSONObject jsonObject=jsonArray.getJSONObject(index);
    getStr=jsonObject.getString(key1);
    System.out.println(“getStr=”+getStr);
    } catch (JSONException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    return getStr;
    }

  3. 第三种json字符串处理
    String str2="[{ “unitId”: “ieweb” },{ “unitId”: “PUBLIC_IE” },{ “unitId”: “Ireland” },{ “unitId”: “UKI” },{ “unitId”: “WE” },{ “unitId”: “EMEA” },{ “unitId”: “PUBLIC_GLOBAL_B2C_UNIT” }]";
    gjv.getJsonArrayValue(str2, 1, “unitId”);
    /**

    • 在JSONArray中再根据key值获取对应的value值
    • @param jsonstr -json字符串,格式如下:[{key1:value1},{key2:value2},{key3:value3}]
    • @param index -{}的索引
    • @param key -JSONObject对应的key
    • @return
      */
      public String getJsonArrayValue(String jsonstr,int index,String key){
      String jsonValue="";
      if(jsonstr==null || jsonstr.trim().length()==0){
      return null;
      }
      try {
      JSONArray jsonArr=new JSONArray(jsonstr);
      System.out.println(“jsonArr size=”+jsonArr.length());
      JSONObject jsonObj=jsonArr.getJSONObject(index);
      jsonValue=jsonObj.getString(key);
      System.out.println(jsonValue);
      } catch (JSONException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      }
      return jsonValue;
      }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值