判断网络请求数据是否是json

在项目中处理网络请求时,为防止后台返回非JSON数据导致程序异常,可以在接收到响应后先进行数据类型检查。`MyHttpUtils` 类提供了一个`isJson()`方法,该方法用于判断字符串是否符合JSON格式。如果成功解析为JSON对象,则认为是有效的JSON数据,否则视为无效。

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

在 项目中请求网络数据时,有时候因为后台返回数据不是json数据会导致程序崩掉。所以在请求网络数据的方法中直接先判断再操作。

public class MyHttpUtils {
private static HttpUtils httpUtils;


// 对post请求的封装
public static void post(String url, Map<String, String> map,
final StringCallBack callback) {
httpUtils = new HttpUtils();


RequestParams params = getParams(map);


httpUtils.send(HttpMethod.POST, url, params,
new RequestCallBack<String>() {


@Override
public void onSuccess(ResponseInfo<String> responseInfo) {
// 返回数据
boolean json = isJson(responseInfo.result);
if (json == true) {
callback.stringCallback(responseInfo.result);
}

}


@Override
public void onFailure(HttpException error, String msg) {
System.out.println("================" + "失败");
// return;
}
});
}


// 对参数的封装
public static RequestParams getParams(Map<String, String> map) {
RequestParams params = new RequestParams();
ArrayList<NameValuePair> arrayList = new ArrayList<NameValuePair>();
BasicNameValuePair nameValuePair;


for (Map.Entry entry : map.entrySet()) {
// 获取键
String key = (String) entry.getKey();
// 获取值
String values = map.get(key);


try {
// 对值进行加密
String encode = DES3.encode(values);


nameValuePair = new BasicNameValuePair(key, encode);


arrayList.add(nameValuePair);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
params.addBodyParameter(arrayList);


return params;
}


// 将参数放入map集合
public static HashMap getMap() {
HashMap<String, String> map = new HashMap<String, String>();
map.put("key1", "values1");
map.put("key2", "values2");


return map;
}


/**
* 判断是否是json结构
*/
public static boolean isJson(String value) {
try {
new JSONObject(value);
} catch (JSONException e) {
return false;
}
return true;
}



}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值