android中如何解析没有Key的Json数据

新浪微博有一部分json数据如下,你会发现这是个数组,但是数组没有key,数组中的对象也没有key。怎么解析呢?fastjson遇到这种无名数组套无名对象也会报异常。所以建议使用原生的json解析。

一、问题:

二、解析代码:

 com.ht.weibo.weibomodel;   com.sina.weibo.sdk.openapi.models.Status;  org.json.JSONArray;  org.json.JSONException;  org.json.JSONObject;   java.util.ArrayList;      {      ArrayList<Status> statuses;       ArrayList<Status> () {          statuses;     }        (ArrayList<Status> statuses) {         .statuses = statuses;     }        (String json) {          (json != ) {              {                 JSONArray array =  JSONArray(json);                 statuses =  ArrayList<>();                  ( i = ; i < array.length(); i++) {                     JSONObject jsonObject = array.getJSONObject(i);                     Status status = Status.parse(jsonObject);                     statuses.add(status);                 }             }  (JSONException e) {                 e.printStackTrace();             }         }     } } 

针对这个问题其他的解法,具体参考:(未实践)

http://zm8.sm-img2.com/?src=http%3A%2F%2Fsegmentfault.com%2Fq%2F1010000000174990&uid=0b4cd023903934907ec4a15ea96326f5&hid=29ae2ef764df9a92491d377a505210ed&pos=1&cid=9&time=1433608784138&from=click&restype=1&pagetype=0000004000000402&bu=web&query=json%E8%A

三、json数据的key值动态改变如何获取?

http://www.apkbus.com/android-114271-1-1.html

有个JSONObject.keys()的方法.返回值就是迭代器

        Iterator<String>  = json.();         因为只有一个对象,所以不必做更深入的迭代         String key = .(); 

四、

json解析,如果某些字段或者对象是opt的,那就需要做一下空判断

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索json
, 对象
, arraylist
, jsonarray
, 解析json
, json解析
, 迭代
, fastjson
, 阿里巴巴fastjson问题
, jsonobject
, fastjson hibernate
, fastjson 时间格式化
, android post json
android json
android解析json数据、json没有key怎么解析、json解析数组没有key、json动态key如何解析、json key为数字解析,以便于您获取更多的相关知识。

时间: 2024-09-28 18:53:08

android中如何解析没有Key的Json数据的相关文章

Android中使用HttpURLConnection实现GET POST JSON数据与下载图片

Android6.0中把Apache HTTP Client所有的包与类都标记为deprecated不再建议使用所有跟HTTP相关的数据请求与提交操作都通过HttpURLConnection类实现,现实是很多Android开发者一直都Apache HTTP Client来做andoird客户端与后台HTTP接口数据交互,小编刚刚用HttpURLConnection做了一个android的APP,不小心踩到了几个坑,总结下最常用的就通过HttpURLConnection来POST提交JSON数据与

android网络-Android中gson解析的问题

问题描述 Android中gson解析的问题 怎么解析一个数组里两个不同长度的大括号,{"a":[{"b":0},{"c":1,"d":2},{"c":3,"d":4}]},实体类里怎么写,谢谢 解决方案 定义类中包含最大范围,(b,c,d),当然最好不要这样,让后台规范json,不用这样混乱 解决方案二: 那种带冒号的数据类型是HashMap,直接定义成HashMap就行了

Android利用Gson解析嵌套多层的Json的简单方法_Android

首先先讲一个比较简单点的例子(最简单的我就不讲啦,网上很多),帮助新手理解Gson的使用方法: 比如我们要解析一个下面这种的Json: String json = {"a":"100", "b":[{"b1":"b_value1","b2":"b_value2"}, {"b1":"b_value1","b2"

Android利用Gson解析嵌套多层的Json的简单方法

首先先讲一个比较简单点的例子(最简单的我就不讲啦,网上很多),帮助新手理解Gson的使用方法: 比如我们要解析一个下面这种的Json: String json = {"a":"100", "b":[{"b1":"b_value1","b2":"b_value2"}, {"b1":"b_value1","b2"

编码-jQuery中的ajax方法获取到json数据中文会乱码

问题描述 jQuery中的ajax方法获取到json数据中文会乱码 接口如下:http://cre.mix.sina.com.cn/api/finance/topstock_display这个接口 默认返回是 gbk的编码 支持 oe=utf-8,但是xtmlhttprequest 返回的数据默认的字符编码是utf-8,后台说用oe=utf转换,求解... 解决方案 首先你这不是json,所以你需要从服务器语言上把数据转换成json再去传到前端:其次,你要把后台脚本改成utf-8编码,不知道你用

android中多台手机通过wifi进行数据传递

问题描述 android中多台手机通过wifi进行数据传递 是这样的,一台手机作为服务器,其他手机作为客户端,通过wifi怎么实现数据传递, 客户端可以主动发消息给服务端,服务端也可以主动发消息给客户端. 哪位大大知道怎么实现... 目前已经实现了一个服务器与一个客户端的连接.但是服务端没法主动给客户端发消息 新手..没什么币... 解决方案 jdk还是ndk? 服务端一般是循环监听消息,而客户端是发出消息,每台手机都是融合服务端和客户端的,获得自己的局域网IP,然后获取特征,在这个地址段前后的

在Action中以Struts2的方式输出JSON数据的实例_java

下面是整个Action的完整代码: package cn.ysh.studio.struts2.json.demo.action; import java.io.IOException; import java.io.PrintWriter; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletResponse; import org.apache.struts2.Servlet

JS中如何判断传过来的JSON数据中是否存在某字段_javascript技巧

如何判断传过来的JSON数据中,某个字段是否存在, 1.obj["key"] != undefined 这种有缺陷,如果这个key定义了,并且就是很2的赋值为undefined,那么这句就会出问题了. 2.!("key" in obj) 3.obj.hasOwnProperty("key") 这两种方法就比较好了,推荐使用. 答案原文: Actually, checking for undefined-ness is not an accurat

Android中Retrofit 2.0直接使用JSON进行数据交互

之前使用Retrofit都是将JSON串转化为POJO对象,针对不同的业务协议,定义相应的接口和参数列表.但是此种方式一般用在自己内部协议基础上,具体大的项目中,有些第三方的集成功能,一般都采用统一的方式即请求JSON和回应JSON进行数据交互,不可能每个第三方协议都会去定义与协议相应的POJO对象. HTTP肯定有GET和POST方法,先定义Retrofit Api的interface: package com.hdnetworklib.network.http; import java.ut