json字符串如何去除空格和换行?json字符串如何处理?

json字符串是一个用单引号或者双引号引起来的字符串,因为字符串的格式符合json的格式,所以叫做json字符串。但是大家在解析的时候,总会空格出现或者像换行却不能正确操作,那json字符串如何去除空格和换行?下面来我们就来给大家讲解一下。

1、用notepad++替换所有的行首空格,按CTRL+H 选择正则表达式-- 查找目标:^\s+ 替换为空。

2、用nodepad++替换所有的换行符,按CTRL+H 选择正则表达式-- 查找目标:\r\n 替换为空。

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。

可以看到一个很明显的区别,一个最外面用的是 { } ,一个最外面用的是 [ ] ;

第一种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;
}

第二种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;
}

第三种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;
}

Json字符串处理方法有3种,作为程序员,一定要知道字符串的处理步骤,这样遇到问题的时候就可以轻松解决了!最后大家如果想要了解更多json工具教程知识,敬请关注奇Q工具网。

推荐阅读:

java继承和接口一起用怎么写?Java接口有用吗?

Java有哪些企业级设计模式?常见的企业级设计模式

java校招面试题有哪些?java校招面试题