返回顶部
首页 > 资讯 > 移动开发 >深入浅析Android JSON解析
  • 377
分享到

深入浅析Android JSON解析

json解析androidjson解析JSONAndroid 2022-06-06 09:06:58 377人浏览 安东尼
摘要

JSON语法 首先看JSON的语法和结构,这样我们才知道怎么去解析它。jsON语法时javascript对象表示语法的子集。 JSON的值可以是: 数字(整数或者浮点数) 字符

JSON语法

首先看JSON的语法和结构,这样我们才知道怎么去解析它。jsON语法时javascript对象表示语法的子集。

JSON的值可以是:

数字(整数或者浮点数)

字符串(在双引号内)

逻辑值(true 或 false)

数组(使用方括号[]包围)

对象( 使用花括号{}包围)

null

JSON中有且只有两种结构:对象和数组。

1、对象:对象在js中表示为“{}”括起来的内容,数据结构为 {key:value,key:value,…}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为 对象.key 获取属性值,这个属性值的类型可以是 数字、字符串、数组、对象几种。

2、数组:数组在js中是中括号“[]”括起来的内容,数据结构为 [“java”,“javascript”,“vb”,…],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是 数字、字符串、数组、对象几种。

做个Android网络编程的同学一定对于JSON解析一点都不陌生,因为现在我们通过手机向服务器请求资源,服务器给我们返回的数据资源一般都是以JSON格式返回,当然还有一些通过XML格式返回,相对JSON格式,XML格式的数据在处理时相对比较繁琐,并且Android为我们提供了两个解析JSON对象的类:JSONObject与JSONArray这两个对象可以很好的满足我们的需求,JSONArray对象可以以数组的形式将数据返回到手机,JSONObject对象则可以以对象的形式将数据为我们封装好返回,手机接收都这两种数据后,通过解析,可以很方便的使用,大大的方便了我们的开发学习

  当然在使用JSONObject进行数据解析时,有两种方式,一种通过键值对的形式一个一个的取数据;另一种就是将JSONObject解析为具体的对象,然后通过对象的get、set方法进行数据的读取与操作,对于第一种方式,相信刚接触JSON解析的小童鞋都是这样干的,相对第一种方式,第二种方式更加的简单方便,下面我们就一起学习一下如何实现将JSONObject对象转化为具体的对象吧。

  因为今天我们要探讨的是关于JSONObject的解析,所以我就通过一个简单的对象创建--对象封装--对象解析--对象操作,为大家介绍一下如何进行JSONObject向具体对象的转化。

  首先我们的对象类(user):


public class User {
  private String id;
  private String name;
  private String from;
  public String getId() {
    return id;
  }
  public void setId(String id) {
    this.id = id;
  }
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public String getFrom() {
    return from;
  }
  public void setFrom(String from) {
    this.from = from;
  }
  @Override
  public String toString() {
    return "User [id=" + id + ",name=" + name + ",from=" + from +"]";
  }
}

  这里我重写了对象的toString方法,这里一定要注意返回参数的格式:类名+'['+参数名+'='+参数+.....+']'

  下面就是我们的对象创建与解析了:

  1、JSONObject对象解析类:


//JSONObject解析类
public class JsonParseToObject {
  public Object AllJsonParseToObject(String json, String packageAddress) {
    Object parseObject = null;
    try {
      parseObject = JSON.parseObject(json, Class.forName(packageAddress));
    } catch (ClassNotFoundException e) {
      e.printStackTrace();
    }
    return parseObject;
  }  
} 

  2、JSON对象的创建与解析:


public class MainActivity extends Activity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    TextView text = (TextView) findViewById(R.id.hw);
    //将我们的对象属性封装都JSONObject中
    JSONObject jo = new JSONObject();
    jo.put("id", "16");
    jo.put("name", "小了");
    jo.put("from", "河南");
    String str = jo.toString();
    Toast.makeText(this, str, Toast.LENGTH_LONG).show();
    //对JSONObject对象进行解析
    User u = (User) new JsonParseToObject().AllJsonParseToObject(jo.toString(), "com.example.jsontoobject.User");
    //判断JSONObject对象解析是否正确
    if(u != null){
      text.setText(jo.toString()+"\nid:"+u.getId()+";name:"+u.getName()+";from:"+u.getFrom());//进行对象操作
    }else{
      text.setText("User == null");
    }
  }
}

  布局文件很简单就是一个文本框,用来显示解析后的数据。

  好了到这里我们关于JSONObject解析的知识就为大家介绍完毕,没用过这种方式的小伙伴可以尝试一下,还是挺方便的,如果你有更好的方式,还望交流学习。

以上内容是小编给大家分享的Android JSON解析的全部叙述,希望可以帮助大家。

您可能感兴趣的文章:Android中使用Gson解析JSON数据的两种方法Android 解析JSON对象及实例说明android 解析json数据格式的方法Android App数据格式Json解析方法和常见问题Android M(6.x)使用OkHttp包解析和发送JSON请求的教程Android中gson、jsonobject解析JSON的方法详解Android解析json数组对象的方法及Apply和数组的三个技巧Android利用Gson解析嵌套多层的Json的简单方法Android json解析及简单例子探究Android系统中解析JSON数据的方式Android编程之json解析实例详解Android编程简单解析JSON格式数据的方法示例


--结束END--

本文标题: 深入浅析Android JSON解析

本文链接: https://lsjlt.com/news/26089.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 深入浅析Android JSON解析
    JSON语法 首先看JSON的语法和结构,这样我们才知道怎么去解析它。JSON语法时JavaScript对象表示语法的子集。 JSON的值可以是: 数字(整数或者浮点数) 字符...
    99+
    2022-06-06
    json解析 android json解析 JSON Android
  • 深入浅析 Android Fragment(上篇)
    自从Fragment出现,曾经有段时间,感觉大家谈什么都能跟Fragment谈上关系,做什么都要问下Fragment能实现不~~~哈哈,是不是有点过~~~ 为了让界面可以在平...
    99+
    2022-06-06
    android fragment fragment Android
  • 深入浅析Android Fragment(下篇)
    在上篇文章给大家介绍深入浅析Android Fragment(上篇),包括一些基本的用法和各种API,如果还想深入学习请继续关注本篇文章。 本篇将介绍上篇提到的:如何管理Fra...
    99+
    2022-06-06
    android fragment fragment Android
  • 深入浅析Android中的AsyncTask
    这篇文章给大家介绍深入浅析Android中的AsyncTask,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1、Asynctask简介1.1 使用方法简介Asynctask作为Android的基础之一,怎么使用就不多讲...
    99+
    2023-05-31
    android asynctask cta
  • 深入浅析JSON在java中的使用
    一、javaBean和json的互转 JavaBean类 public class Person { private Integer id; private St...
    99+
    2024-04-02
  • 深入浅析Android坐标系统
     1 背景 去年有很多人私信告诉我让说说自定义控件,其实通观网络上的很多博客都在讲各种自定义控件,但是大多数都是授之以鱼,却很少有较为系统性授之于渔的文章,同时由于自...
    99+
    2022-06-06
    系统 Android
  • 深入浅析Android消息机制
    在Android中,线程内部或者线程之间进行信息交互时经常会使用消息,这些基础的东西如果我们熟悉其内部的原理,将会使我们容易、更好地架构系统,避免一些低级的错误。 每一个And...
    99+
    2022-06-06
    Android
  • 深入浅析AngularSSR
    目录使用 SSR 的好处对 SEO 更加友好提高移动端的性能更快地展示首页为项目增加 SSR替换浏览器 API使用 URL 绝对地址Prerender 预渲染静态 HTML预渲染路径...
    99+
    2022-11-13
    Angular SSR Angular SSR好处 Angular SSR用法
  • 深入浅析MySQL Explain
    目录一、id二、select_type三、table四、type五、possible_keys六、Key七、key_len八、ref九、rows十、Extra在日常工作中,我们会有时会开慢查询去记录一些执行时间...
    99+
    2022-07-08
    MySQL Explain MySQL Explain详解
  • 深入浅析MySQL Explain
    目录一、id二、select_type三、table四、type五、possible_keys六、Key七、key_len八、ref九、rows十、Extra在日常工作中,...
    99+
    2024-04-02
  • 深入理解Python对Json的解析
    Json简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - De...
    99+
    2022-06-04
    Python Json
  • 深入浅析Android接口回调机制
    在使用接口回调的时候发现了一个经常犯的错误,就是回调函数里面的实现有可能是用多线程或者是异步任务去做的,这就会导致我们期望函数回调完毕去返回一个主函数的结果,实际发现是行不通的...
    99+
    2022-06-06
    回调 android接口回调 Android
  • 深入浅析Android中的消息机制
    本篇文章给大家分享的是有关深入浅析Android中的消息机制,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、简介Android的消息机制主要是指Handler的运行机制,那么...
    99+
    2023-05-31
    android 消息机制 roi
  • 深入浅析Android应用中的多进程
    这篇文章将为大家详细讲解有关深入浅析Android应用中的多进程,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。android:process应用实现多进程需要依赖于android:proce...
    99+
    2023-05-31
    android roi 多进程
  • 深入浅析Android中DecorView与ViewRootImpl的区别
    今天就跟大家聊聊有关深入浅析Android中DecorView与ViewRootImpl的区别,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。从setContentView说起一般地,...
    99+
    2023-05-31
    android viewrootimpl decorview
  • 深入浅析Android中View的绘制流程
    深入浅析Android中View的绘制流程?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。从performDraw说起三大工作流程始于ViewRootImpl#p...
    99+
    2023-05-31
    android view roi
  • 深入浅析Android中的ListView复用机制
    这篇文章给大家介绍深入浅析Android中的ListView复用机制,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1.ListView的复用机制  ListView是我们经常使用的一个控件,虽然说都会用,但是...
    99+
    2023-05-31
    android listview roi
  • 深入浅析Android中的NestedScrolling滑动机制
    深入浅析Android中的NestedScrolling滑动机制?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1,如今NestedScrolling运用到很多地方了,要想好...
    99+
    2023-05-31
    nestedscrolling android roi
  • 深入浅出解析Java ThreadLocal原理
    目录1.了解ThreadLocal简介使用2.源码解析 – 探究实现思路threadLocals变量与ThreadLocalMapset(T value) 方法get() 方法rem...
    99+
    2024-04-02
  • 深入浅析Java常用的格式化Json工具类
    扩展:Java常用工具类汇总 前置条件 导入以下 jar 包 <dependency> <groupId>com.alibaba&...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作