json解析-安卓联网解析长JSON字符串

问题描述

安卓联网解析长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里面的代码不能用运行

解决方案

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

解决方案二:

http://www.zhihu.com/question/23424508
http://www.miui.com/thread-2574889-1-1.html
http://download.csdn.net/detail/yayun0516/8705675

解决方案三:

解析json都是在本地,联网是为了获取json

解决方案四:

if (conn.getResponseCode() == 200) {
InputStream is = conn.getInputStream();
BufferedReader br = new BufferedReader(
new InputStreamReader(is));
String str = null;
StringBuffer stringBuffer = new StringBuffer();
while ((str = br.readLine()) != null) {
stringBuffer.append(str);
}
System.out.println(stringBuffer.toString());
return stringBuffer.toString();
}

            改成这段代码试一试,你的是获取的json不完整
时间: 2024-09-21 21:54:44

json解析-安卓联网解析长JSON字符串的相关文章

请问这种不规范的json如何用java解析,安卓开发中遇到的。

问题描述 请问这种不规范的json如何用java解析,安卓开发中遇到的. 解析一个开发接口提供的json时出现了这个格式的{"key":["value1","value2","value3"]} .已使用代码如下: String []result=(String[]) o.get("result"); 不成功.菜鸟求教 先谢过! 解决方案 怎么不规范了? 你要转成对象还是干嘛? 解决方案二: 请教了一位大神

安卓中解析json出现问题,大家帮忙看看

问题描述 安卓中解析json出现问题,大家帮忙看看 05-07 01:24:03.837: W/System.err(1349): org.json.JSONException: Unterminated string at character 30 of {"Result":"1","LoginPwd":"456} 05-07 01:24:03.837: W/System.err(1349): at org.json.JSONToke

jquery解析json格式数据的方法(对象、字符串)_jquery

本文实例讲述了jquery解析json格式数据的方法.分享给大家供大家参考,具体如下: json数据是我们常用的一种小型的数据实时交换的一个东西,他可以利用jquery或js进行解析,下面我来介绍jquery解析json字符串方法. 一.jQuery解析Json数据格式: 使用这种方法,你必须在Ajax请求中设置参数: dataType: "json" 获取通过回调函数返回的数据并解析得到我们想要的值,看源码: jQuery.ajax({ url: full_url, dataType

js 将json字符串转换为json对象的方法解析_javascript技巧

例如: JSON字符串: var str1 = '{ "name": "cxh", "sex": "man" }'; JSON对象: var str2 = { "name": "cxh", "sex": "man" }; 一.JSON字符串转换为JSON对象 要使用上面的str1,必须使用下面的方法先转化为JSON对象: //由JSON字符串转换为

《项目经验》--通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中

问题描述 此帖子内容是我做项目时用到,自己琢磨出来的,可能还有很多纰漏之处,在此分享!互相交流,互相学习,有不对的地方,欢迎大家指正!具体内容见博客<<项目经验>--通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中>:http://blog.csdn.net/mazhaojuan/article/details/8592015先看一下我要实现的功能界面:这个界面的功能在图中已有展现,课程分配(教师教授哪门课程)在之前的页

sqlite-Android 用Gson解析从服务器获取的JSON数据,存入SQLite数据库

问题描述 Android 用Gson解析从服务器获取的JSON数据,存入SQLite数据库 比如这么一段JSON数据,用Gson解析后存在这几个model里面 然后想存入SQLite本地数据库中. 如果数据库建表 那要怎么建?字段里面需要List<>而且还需要关联其他表. 而且我不知道这种方法是不是好,网上找到一种简便的方法.每次取得JSON数据以String类型保存到SharedPreference中,然后用的时候取出来再用Gson解析,我感觉这挺方便的,但不知实际开发中是怎么用的?说实话有

解析json-高效解析简单结构json

问题描述 高效解析简单结构json 没有属性,只有数值的字符串json:格式如下 [ [1,2,3], [3,4,5], [6,7,8], .... ] 嵌套的每个数组长度都是一样的,元素数值类型为Double,可能有值为null. 最开始使用的是alibaba的fastjson解析,但因为数据量巨大,实际性能也并不是很好,于是查看了源码,因为源码是解析通用对象的,有很多不必要的判断.怎么自己手写一个比较简单高效的针对这个格式的解析呢?要转换成List 解决方案 直接用split分割.如果sch

我有一段json请问需要怎么解析

问题描述 我有一段json请问需要怎么解析 { "desc": "OK", "status": 1000, "data": { "wendu": "2", "ganmao": "天气较凉,较易发生感冒,请适当增加衣服.体质较弱的朋友尤其应该注意防护.", "forecast": [ { "fengxiang"

e1-帮忙解析这个树形结构的JSON。求方法

问题描述 帮忙解析这个树形结构的JSON.求方法 [{"id":"297e1e2e44770cfc01449f43aad100bc","pid":null,"text":"华南区","isexpand":null,"classes":"folder","hasChildren":null,"expanded"