解析Json 出现——java.lang.RuntimeException: java.lang.reflect.InvocationTargetException

在后台写了一个调用百度api接口,将GPS坐标转换成百度坐标的方法,

获得返回的一个json串,

jsonStr = "{\"status\":0,\"result\":[{\"x\":123.98636285887,\"y\":42.457133104428},{\"x\":123.98739247735,\"y\":42.462356027015}]}";

用main方法测试解析这个json串

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

JSONObject jsonobj = JSONObject.fromObject(jsonStr); 
JSONArray objs = jsonobj.getJSONArray("result");
String[] db = new String[4];
 
JSONObject jo = objs.optJSONObject(0);
String x = jo.getString("x");
String y = jo.getString("y");
db[0]=x;
db[1]=y;
JSONObject jo1 = objs.optJSONObject(1);
String x1 = jo1.getString("x");
String y1 = jo1.getString("y");
db[2]=x1;
db[3]=y1;

完全没有问题。

但是在Jfinal 框架下,用web,从页面点击进入Controller->调用这个转换方法,解析的过程中

JSONObject jsonobj = JSONObject.fromObject(jsonStr); 处报错:

java.lang.RuntimeException: java.lang.reflect.InvocationTargetException



很遗憾,不知道问题是什么,

没办法为了赶工,就用了阿里巴巴的fastjson,运行没有问题

import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.JSONArray;

代码片段,

JSONObject jsonobj = JSONObject.parseObject(jsonStr);
JSONArray objs = jsonobj.getJSONArray("result");
String[] db = new String[4];

问题解决。

虽然有些遗憾未能找到原因。有时间再琢磨琢磨


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值