关于Json数据的手动解析

前几天做项目遇到了个关于服务器返回的JSONObject解析的问题,想记录一下。

关于Json的解析一般用2种方法,第一是下载GSON的JAR包,采用GSON解析,这种解析虽然方便使用,但是对于一些特殊格式的Json字符串是行不通的。而且JavaBean也写不出来。先上图:

对于这样的对象包对象的形式,不适合写传统的JavaBean,需要采用手动解析的形式。手动解析非常强大,基本可以对各种格式的Json字符串进行解析。

下面是我解析的类:

public class OriginalRankBean {
    public String author;
    public String play;
    public String pic;
    public String title;
    public String video_review;

    public List<OriginalRankBean> parse(JSONObject obj) {
        if (obj == null) {
            return null;
        }
        List<OriginalRankBean> datalist=new ArrayList<OriginalRankBean>();
            obj = obj.optJSONObject("list");

            for (int i = 0; i < 20; i++) {
                OriginalRankBean rank = new OriginalRankBean();
                JSONObject optJSONObject = obj.optJSONObject(i + "");
                rank.author = optJSONObject.optString("author");
                rank.play = optJSONObject.optString("comment");
                rank.pic = optJSONObject.optString("pic");
                rank.title = optJSONObject.optString("title");
                rank.video_review = optJSONObject.optString("video_review");
                datalist.add(rank);
            }
        return datalist;

    }

}

在手动解析的javaBean中写入方法,通过调用方法,直接返回一个集合。在外面进行方法的调用并传入JSONObject,再创建一个集合进行接收就可以了。

注意:这里用opt可以防止报异常,因为opt内部已经做了判断了,而使用get的形式需要抛异常。

在解析过程中,只拿自己需要的数据就可以了。

注意上来先判空,如果请求回来的JSONObject是空的话,那就没必要解析了,直接return,去检查url和请求网络的方法是否出现了问题。

时间: 2024-08-06 16:22:08

关于Json数据的手动解析的相关文章

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

摘自:http://blog.csdn.net/mazhaojuan/article/details/8592015 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中  先看一下我要实现的功能界面:   这个界面的功能在图中已有展现,课程分配(教师教授哪门课程)在之前的页面中已做好.这个页面主要实现的是授课,即给老师教授的课程分配学生.此页面实现功能的步骤已在页面中有所体现,这里不再赘述,此篇文章主要介绍:我是如何通过js从前台获取数

Android配置文件分享和JSON数据生成与解析

首先声明,我这里大体是讲的一个关于"Android配置文件分享和JSON数据生成与解析"的整体流程,具体数据库中的数据根据读者自己的项目来安排,如果您看不大懂也请您原谅,毕竟我说了,我只是新手.其实关于数据库中的数据你只需要知道他们都是一个个对象,然后有各自的属性就行了,我们的关键在于JSON数据的生成与解析. 鉴于自己的是个博客新手,感觉自己的博客访问量有些少可能是因为自己确实知识匮乏,毕竟我早就说了,我不适合编程,但是没办法啊,我要去读个文学博士的话,怕是要遭人白眼了,故而以后的事

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

  先看一下我要实现的功能界面:   这个界面的功能在图中已有展现,课程分配(教师教授哪门课程)在之前的页面中已做好.这个页面主要实现的是授课,即给老师教授的课程分配学生.此页面实现功能的步骤已在页面中有所体现,这里不再赘述,此篇文章主要介绍:我是如何通过js从前台获取数据,然后通过ajax技术向后台一般处理程序传递JSON,后台又是如何获取传来的JSON,并对JSON数据转换,然后将转换后的数据写入数据库的! 介绍这些步骤实现前,先说说自己的辛酸:絮叨辛酸,是因为为了实现这个功能,我真的用了很

Struts2 Action接收POST请求JSON数据及其实现解析

一.认识JSON JSON是一种轻量级.基于文本.与语言无关的数据交换格式,可以用文本格式的形式来存储或表示结构化的数据. 二.POST请求与Content-Type: application/json 常用的HTTP请求方法有GET, POST, PUT, DELETE等.在提交POST请求时,请求数据放在消息体(Body)中,请求数据的格式及编码方式用Content-Type来指定.如我们常用的表单<form>提交,其Content-Type默认为application/x-www-for

JSON数据构造及解析详解

1.JSON格式数据长啥样? 2.JSON简介 JSON(Javascript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,也易于机器解析和生成. 1)可读性:Json和XML相比可谓不相上下,一边是简单的语法,一边是规范的标签形式,很难分出胜负. 2)可扩展性:XML天生有很好的可扩展性,Json也有. 3)编码难度:XML有丰富的编码工具,Json也有提供,但是XML要输入很多结构字符. 4)解码难度:凡是可扩展的数据结构,解析起来都很困难. 5)数据量: J

浅析ajax请求json数据并用js解析 [转]

<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> <script type="text/javascript" src="js/jq

JSON 数据的系统解析

- (IBAction)jsonSystemButtonDidClicked:(UIButton *)sender { self.JSONArray = [NSMutableArray array]; // 1.拿到 json 文件的路径 NSString *path = [[NSBundle mainBundle] pathForResource:@"student" ofType:@"json"]; // 2.根据路径获取文件内容为 NSData 对象 NSDa

JSON 数据的 JSONKit 解析

@property (nonatomic, strong) NSMutableArray *JSONArray; 懒加载 - (NSMutableArray *)JSONArray { if (_JSONArray == nil) { self.JSONArray = [NSMutableArray array]; } return _JSONArray; } - (IBAction)JSONKitButtonDidClicked:(UIButton *)sender { // 1.拿到 jso

Android之解析Json数据

作用:网络传输格式. JSON 语法规则 JSON 语法是 JavaScript 对象表示语法的子集. 数据在键值对中 数据由逗号分隔 花括号保存对象 方括号保存数组 JSON 名称/值对 JSON 数据的书写格式是:名称/值对. 基础结构  --> 重点 JSON[1] 结构有两种结构[2] json简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构 1.对象:对象在js中表示为“{}”括起来的内容,数据结构为 {key:v