Android中解析JSON总结
来源:互联网 发布:同性电影推荐知乎 编辑:程序博客网 时间:2024/03/29 06:03
前言:
1>认识JSON
JSON 语法规则
JSON 语法是 JavaScript 对象表示法语法的子集。
- 数据在名称/值对中
- 数据由逗号分隔
- 花括号保存对象
- 方括号保存数组
JSON 名称/值对
JSON 数据的书写格式是:名称/值对。
名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值:
"firstName" : "John"
这很容易理解,等价于这条 JavaScript 语句:
firstName = "John"
JSON 值
JSON 值可以是:
- 数字(整数或浮点数)
- 字符串(在双引号中)
- 逻辑值(true 或 false)
- 数组(在方括号中)
- 对象(在花括号中)
- null
JSON 对象
JSON 对象在花括号中书写:
对象可以包含多个名称/值对:
{ "firstName":"John" , "lastName":"Doe" }
JSON 数组
JSON 数组在方括号中书写:
数组可包含多个对象:
{
"employees": [
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" }
]
}
"employees": [
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" }
]
}
在上面的例子中,对象 "employees" 是包含三个对象的数组。每个对象代表一条关于某人(有姓和名)的记录。
更多关于JSON的内容可参考JSON教程
2>JSON与XML的比较
比起XML,JSON的主要优势在于它的体积更小,在网络上传输时可以节省流量;
但缺点是语义性较差,看起来不去XML直观;
3>JSON文件内容展示
下面,我们就以上述的JSON数组employees为例,将其拷贝进本应用的文件夹下,
将这个JSON文件命名为test.json,然后对其进行解析;test.json,其内容如下:
代码示例如下:
MainActivity:
package com.example.administrator.testparsejson;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.view.View;import org.json.JSONArray;import org.json.JSONObject;import java.io.BufferedReader;import java.io.File;import java.io.FileReader;public class MainActivity extends AppCompatActivity { private String stringJSON; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void parseJSON(View view){ try { /**** * 获取JSON文件 * **/ File file = new File(getFilesDir(),"test.json"); BufferedReader bufferedReader = new BufferedReader(new FileReader(file)); String line; StringBuffer stringBuffer = new StringBuffer(); while ((line = bufferedReader.readLine()) !=null){ stringBuffer.append(line); } String stringJSON = stringBuffer.toString(); /*** * 解析JSON文件 * **/ JSONObject jsonObject = new JSONObject(stringJSON); JSONArray jsonArray = jsonObject.getJSONArray("employees"); for(int i=0; i<jsonArray.length(); i++){ JSONObject object = jsonArray.getJSONObject(i); Log.e("firstName",object.getString("firstName")); Log.e("lastName",object.getString("lastName")); } } catch (Exception e) { e.printStackTrace(); } }}
运行结果如下:
总结:
1>
关于JSON的解析其实是很简单的,关键是需要去弄清楚JSON的数据格式的组织形式;
2>
在本示例中,已提前将一个JSON文件拷贝进了本应用的文件夹下,在这个前提下,再去进行JSON的解析的;
源码:
解析JSON总结示例源码
0 0
- Android中解析JSON总结
- Android JSON解析总结
- Android Json 解析总结
- android中json解析
- Android中解析JSON
- Android中JSON解析
- Android中JSON解析
- Android中解析JSON
- Android中JSON解析
- Android中解析json
- Android Json解析与总结
- Android Json解析与总结
- Android Json解析与总结
- Android Json解析与总结
- Android Json解析与总结
- Android中json的解析
- Android中解析Json方法
- Android中JSON数据解析
- os.time 和 os.date
- 【git】 安装与使用
- day_03文件操作模式
- 添物不花钱学计算机及编程(预备篇) - 计算机网络
- 使用Spring处理一个RESTful请求
- Android中解析JSON总结
- C++实现不可被复制的类
- 46、JavaScript的运动----完美运动框架的实现----注意运动停止的判断的技巧
- vim程序编辑器
- win32版QQ隐藏功能,气泡消息显示详细时间
- Android刮彩票效果
- 10+资深软件架构师谈计算机专业——填高考志愿必读
- Android开发-layout布局相关属性总结
- GDB arm-linux交叉编译移植和使用方法(特别是对于正在运行的程序或者段错误的程序进行分析)