https://api.steampowered.com/IDOTA2Match_570/GetMatchDetails/V001/?key=D0CCA1C6B04C07BBA05F04BE6D3E8E23&match_id=173546139
这串json,为什么我用JSONObject读出来,只能取到result而且返回的是字符串,如何才能取到下面对应的一些值呢?
try{
myurl = new URL("https://api.steampowered.com/IDOTA2Match_570/GetMatchDetails/V001/?key=D0CCA1C6B04C07BBA05F04BE6D3E8E23&match_id="+matchId);
conn = myurl.openConnection();
httpURLConn = (HttpURLConnection)conn;
httpURLConn.setRequestMethod("GET");
reader = new BufferedReader(new InputStreamReader(httpURLConn.getInputStream(),"gbk"));
String lineStr = reader.readLine();
StringBuffer totalData = new StringBuffer();
while (lineStr!=null){
lineStr = reader.readLine();
totalData.append(lineStr);
}
String str = new String(totalData);
str = str.replaceAll("\t", "");
str = str.replaceAll("null", "");
str = "{"+str;
System.out.println(str);
JSONObject jsary=JSONObject.fromObject(str);//格式化成json对象
JSONObject.fromObject(str);
//JSONArray jsary=JSONArray.fromObject(str);
matchResult = jsary.getString("result");//这里读别的值都会报错
}catch (Exception e){
e.printStackTrace();
}
JSON
这串json,为什么我用JSONObject读出来,只能取到result而且返回的是字符串,如何才能取到下面对应的一些值呢?
try{
myurl = new URL("https://api.steampowered.com/IDOTA2Match_570/GetMatchDetails/V001/?key=D0CCA1C6B04C07BBA05F04BE6D3E8E23&match_id="+matchId);
conn = myurl.openConnection();
httpURLConn = (HttpURLConnection)conn;
httpURLConn.setRequestMethod("GET");
reader = new BufferedReader(new InputStreamReader(httpURLConn.getInputStream(),"gbk"));
String lineStr = reader.readLine();
StringBuffer totalData = new StringBuffer();
while (lineStr!=null){
lineStr = reader.readLine();
totalData.append(lineStr);
}
String str = new String(totalData);
str = str.replaceAll("\t", "");
str = str.replaceAll("null", "");
str = "{"+str;
System.out.println(str);
JSONObject jsary=JSONObject.fromObject(str);//格式化成json对象
JSONObject.fromObject(str);
//JSONArray jsary=JSONArray.fromObject(str);
matchResult = jsary.getString("result");//这里读别的值都会报错
}catch (Exception e){
e.printStackTrace();
}
JSON
解决方案 »
- java 下怎么执行mysql 批量插入语句
- 如果说硬性规定一个类的代码行数不能超过x行,你能忍受的限度会是多少行?
- SSH hibernate + oracle做好的一个项目 现在数据库要换成sybase,求高手指点下整个流程?大概讲讲就好
- 日期转换。各位客官进来一下
- 请教高手一个算法问题!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- Hibernate 查询问题
- 运行在不同Tomcat上的两个应用如何实现一次登陆和统一权限?
- 用XMLHTTP时传参数问题
- (100)急急急!!!!关于数据结构题目—员工管理系统(需要源码)
- 散分:畅所欲言,大家看看这我样的水平在北京行不行
- java提取SVN日志信息,统计SVN提交次数。。。
- hibernate criteria如何查询所有数据 去掉指定字段的重复记录?
https://api.steampowered.com/IDOTA2Match_570/GetMatchDetails/V001/?key=D0CCA1C6B04C07BBA05F04BE6D3E8E23&match_id=173546139
就是字符串
直接解析地址返回的代码没有反应,我把代码改了一下,如下片段
[{
"result": [{
"players": [{"account_id": 4294967295}] }]
}]
可以得到result对象以及players对象下面的值
var jsObj=getJSONObj(info);
for(var i=0,len=jsObj.length;i<len;i++){
var m = jsObj[i];
alert(m.result[0].players[0].account_id)
}
感觉应该是代码格式的事
为什么我用JSONObject读出来,只能取到result而且返回的是字符串因为你用的是:jsary.getString("result") getString方法肯定是返回字符串的,得用取得json对象的方法。取得result的json对象,然后继续取players对象就可以了。现在返回的是字符串,自然就没办法继续向下取了。