Java json多层解析

importnet.sf.json.JSONObject;publicclassqianbao{publicstaticvoidmain(String[]args){St... import net.sf.json.JSONObject;
public class qianbao {
public static void main(String[] args) {

String jsonStr = "{'name':111,'child':[{'name':222,'child':[{'name':333}]},{'name':2221}]}";
System.out.println(jsonStr);
JSONObject jsonObj = JSONObject.fromObject(jsonStr.toString());
String a = jsonObj.getString("name");
System.out.println(a);
// JSONArray jsonArray = jsonObj.getJSONArray("child");

// if (null != jsonArray && jsonArray.size() > 0) {
//
// for (int i = 0; i < jsonArray.size(); i++) {
//
// Object obj = jsonArray.get(i);
//
// JSONObject json = JSONObject.fromObject(obj);
//
// if (StringUtils.isNotBlank(json.getString("name"))) {
//
// System.out.println("name " + json.getString("name"));
//
// }
//
// }
// }
}

}

运行后报错
{'name':111,'child':[{'name':222,'child':[{'name':333}]},{'name':2221}]}
Exception in thread "main" net.sf.json.JSONException: A JSONObject text must begin with '{' at character 1 of {'name':111,'child':[{'name':222,'child':[{'name':333}]},{'name':2221}]}
at net.sf.json.util.JSONTokener.syntaxError(JSONTokener.java:527)
at net.sf.json.JSONObject._fromJSONTokener(JSONObject.java:1112)
at net.sf.json.JSONObject._fromString(JSONObject.java:1337)
at net.sf.json.JSONObject.fromObject(JSONObject.java:187)
at net.sf.json.JSONObject.fromObject(JSONObject.java:156)
at qianbao.main(qianbao.java:19)

哪位大神帮看看,这种的string应该如何解析?
展开
 我来答
rsojw496
2014-04-30
知道答主
回答量:72
采纳率:0%
帮助的人:22.8万
展开全部
JSONObject的dataJson =新的JSONObject(“你的JSON数据”);
JSONObject的响应= dataJson.getJSONObject(“响应”);

JSONArray数据= response.getJSONArray(“数据”); JSONObject的信息= data.getJSONObject(0);

字符串省= info.getString(“省”);

弦乐城市= info.getString(“城市”);

字符串区= info.getString(“区”);

字符串地址= info.getString(“地址”);
System.out.println(省+市+区+地址);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-04-30
展开全部
{}是Object []是Array
一层一层解析的话,{}对应JSONObject,[]对应JSONArray
追问
JSONObject dataJson = new JSONObject(jsonStr);
换了这个以后也是这行出错,这里应该怎么写正确啊?
追答
我研究了半天...

String jsonStr = "{'name':111,'child':'1'}";
String jsonStr = "{'name':111,'child':'1'}";

你能发现这两句的区别么,一个报错一个没问题,总结是你的‘{’的问题

是中间藏了个很隐秘的65279
String jsonStr1 = "{'name':111,'child':'1'}";
char c1 = jsonStr1.charAt(0);
System.out.println(0+c1);
String jsonStr2 = "{'name':111,'child':'1'}";
char c2 = jsonStr2.charAt(0);
char c3 = jsonStr2.charAt(1);
System.out.println(0+c2);
System.out.println(0+c3);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友12ee0fd
2014-04-30 · TA获得超过4.7万个赞
知道大有可为答主
回答量:1.1万
采纳率:66%
帮助的人:1981万
展开全部
有类似于xpath的 json-path
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式