等一个人找一个人 2015-09-22 16:31 采纳率: 0%
浏览 1861
已结题

安卓联网解析长JSON字符串

接口地址:http://api.k780.com:88/?app=weather.city&&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json

代码:
package com.example.cityinfo;

import java.util.ArrayList;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.util.Log;

public class JsonUtils
{
//cityjson是从网络获取的json字符串
public ArrayList getlist(String cityjson)
{

Log.i("==========", "getlist方法");
try
{
ArrayList list = new ArrayList();
JSONObject object = new JSONObject(cityjson);
JSONArray array = object.getJSONArray("result");
for(int i=0;i<array.length();i++)
{
JSONObject wea = array.getJSONObject(i);
String name =wea.getString("citynm");
String key = wea.getString("weaid");
list.add(new City(name,key));
Log.i("========", name);
}

return list;
} catch (JSONException e)
{
}

return null;
}
}

获取json字符串代码
package com.example.cityinfo;

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

import android.util.Log;

public class HttpUtils
{
public String getJson(String cityURL)
{
try
{
Log.i("======", "正在连接。。。");
HttpURLConnection conn=(HttpURLConnection)new URL(cityURL).openConnection();
conn.setRequestMethod("GET");
conn.connect();
if(conn.getResponseCode() == 200)
{
Log.i("=====", "连接成功。。。");
InputStream is = conn.getInputStream();
byte[] b = new byte[1024];
int num=0;
StringBuffer buffer = new StringBuffer();
while ((num=is.read(b))!=-1)
{
buffer.append(new String(b,0,num));
}
return buffer.toString();
}

} catch (MalformedURLException e)
{
} catch (IOException e)
{
}

return null;
}
}
为什么解析不了,还有每次获取的json字符串长度都不一样。
解析里的try里面的代码不能用运行图片说明

  • 写回答

4条回答 默认 最新

  • bdmh 移动开发领域优质创作者 2015-09-22 22:07
    关注

    先确定后台返回是否正常,内容是否一致,解析用java的JSONObjecct,或者定义一个和json结构一致的类,用谷歌的gson直接解析成类实例

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。