您的位置:

android能看json吗,json android

android能看json吗,json android

更新:

本文目录一览:

json是什么格式,在安卓手机上用什么打开

json就是一个字符串,类似树形结构。

只要没加过密,一般的文本编辑器就可以打开。

android怎么看json数据格式?

JSON有两种表示结构,对象和数组。

对象结构以”{”大括号开始,以”}”大括号结束。中间部分由0或多个以”,”分隔的”key(关键字)/value(值)”对构成,关键字和值之间以”:”分隔,语法结构如下

{

key1:value1,

key2:value2,

}其中关键字是字符串,而值可以是字符串,数值,true,false,null,对象或数组

数组结构以”[”开始,”]”结束。中间由0或多个以”,”分隔的值列表组成,语法结构如下

[

{

key1:value1,

key2:value2

},

{

key3:value3,

key4:value4

}

]

给服务端发送请求后,服务端会返回一连串的数据,这些数据在大部分情况下都是XML格式或者JSON格式。然后JSON相对XML来说解析相对方便一些,所以先说说JSON的解析。

JSON的基本数据格式有这几种:

1.一个JSON对象——JSONObject

{"name":"胡小威" , "age":20 , "male":true}

2.一个JSON数组——JSONArray

[{"name":"胡小威" , "age":20 , "male":true},{"name":"赵小亮" , "age":22 , "male":false}]

3.复杂一点的JSONObject

{"name":"胡小威", "age"=20, "male":true, "address":{"street":"岳麓山南", "city":"长沙","country":"中国"}}

4.复杂一点的JSONArray

[

{"name":"胡小威", "age"=20, "male":true, "address":{"street":"岳麓山南", "city":"长沙","country":"中国"}},

{"name":"赵小亮", "age"=22, "male":false, "address":{"street":"九州港", "city":"珠海","country":"中国"}}

]

android 解析json用那个包里面的方法比较好呢?

android 解析json还有用Google出品的Gson比较好,具体步骤为:

1、首先,从 code.google.com/p/google-gson/downloads/list下载GsonAPI:

google-gson-1.7.1-release.zip 把gson-1.7.jar copy到libs(项目根目录新建一个libs文件夹)中。 可以使用以下两种方法解析JSON数据,通过获取JsonReader对象解析JSON数据。

代码如下:

String jsonData = "[{\"username\":\"arthinking\",\"userId\":001},{\"username\":\"Jason\",\"userId\":002}]";

try{

JsonReader reader = new JsonReader(new StringReader(jsonData));

reader.beginArray();

while(reader.hasNext()){

reader.beginObject();

while(reader.hasNext()){

String tagName = reader.nextName();

if(tagName.equals("username")){

System.out.println(reader.nextString());

}

else if(tagName.equals("userId")){

System.out.println(reader.nextString());

}

}

reader.endObject();

}

reader.endArray();

}

catch(Exception e){

e.printStackTrace();

}

2、使用Gson对象获取User对象数据进行相应的操作:

代码如下:

Type listType = new TypeTokenLinkedListUser(){}.getType();

Gson gson = new Gson();

LinkedListUser users = gson.fromJson(jsonData, listType);

for (Iterator iterator = users.iterator(); iterator.hasNext();) {

User user = (User) iterator.next();

System.out.println(user.getUsername());

System.out.println(user.getUserId());

}

3、如果要处理的JSON字符串只包含一个JSON对象,则可以直接使用fromJson获取一个User对象:

代码如下:

String jsonData = "{\"username\":\"arthinking\",\"userId\":001}";

Gson gson = new Gson();

User user = gson.fromJson(jsonData, User.class);

System.out.println(user.getUsername());

System.out.println(user.getUserId());

android 怎么看json数据格式

给服务端发送请求后,服务端会返回一连串的数据,这些数据在大部分情况下都是XML格式或者JSON格式。然后JSON相对XML来说解析相对方便一些,所以先说说JSON的解析。

JSON的基本数据格式有这几种:

1.一个JSON对象——JSONObject

{"name":"胡小威" , "age":20 , "male":true}

2.一个JSON数组——JSONArray

[{"name":"胡小威" , "age":20 , "male":true},{"name":"赵小亮" , "age":22 , "male":false}]

3.复杂一点的JSONObject

{"name":"胡小威", "age"=20, "male":true, "address":{"street":"岳麓山南", "city":"长沙","country":"中国"}}

4.复杂一点的JSONArray

[

{"name":"胡小威", "age"=20, "male":true, "address":{"street":"岳麓山南", "city":"长沙","country":"中国"}},

{"name":"赵小亮", "age"=22, "male":false, "address":{"street":"九州港", "city":"珠海","country":"中国"}}

]

5.来个更复杂的,这是我从爱帮公交上扒取的数据

{"buses":{"bus":[{"last_foot_dist":"0","time":"37","segments":{"segment":[{"line_name":"立珊专线(中南大学学生公寓-长沙火车站)","foot_dist":"362","stat_xys":"","stats":"岳麓山南;湖南师大;二里半;岳麓山北;市四医院;华图教育(太平街口);牛耳教育(南阳街口);韭菜园;曙光路口;长岛路口;长沙火车站","end_stat":"长沙火车站","line_xys":"","line_dist":"7535","start_stat":"岳麓山南"}]},"foot_dist":"362","dist":"7897"},{"last_foot_dist":"0","time":"41","segments":{"segment":[{"line_name":"旅1路(科教新村-长沙火车站)","foot_dist":"337","stat_xys":"","stats":"岳麓山南;湖南师大;二里半;岳麓山北;市四医院;华图教育(太平街口);蔡锷中路口;韭菜园;乔庄;曙光路口;长岛路口;五一东村;车站路口;长沙火车站","end_stat":"长沙火车站","line_xys":"","line_dist":"7822","start_stat":"岳麓山南"}]},"foot_dist":"337","dist":"8159"}]}}

接下来是解析部分

一、直接解析

1.{"name":"胡小威" , "age":20 , "male":true}

Java代码

public void parseJsonObject(String json) {

try {

JSONObject jsonObject = new JSONObject(json);

String name = jsonObject.getString("name");

int age = jsonObject.getInt("age");

boolean male = jsonObject.getBoolean("male");

//接下来该干嘛干嘛

} catch (JSONException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

2.[{"name":"胡小威" , "age":20 , "male":true},{"name":"赵小亮" , "age":22 , "male":false}]

Java代码

public void parseJSONArray(String json) {

try {

JSONArray jsonArray = new JSONArray(json);

for (int i = 0; i jsonArray.length(); i++) {

jsonObject = jsonArray.getJSONObject(i);

String name = jsonObject.getString("name");

int age = jsonObject.getInt("age");

boolean male = jsonObject.getBoolean("male");

//接下来该干嘛干嘛

}

} catch (JSONException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

3.{"name":"胡小威", "age"=20, "male":true, "address":{"street":"岳麓山南", "city":"长沙","country":"中国"}}

Java代码

public void parseJsonPerson(String json) {

try {

JSONObject jsonObject = new JSONObject(json);

String name = jsonObject.getString("name");

int age = jsonObject.getInt("age");

boolean male = jsonObject.getBoolean("male");

JSONObject addressJSON = jsonObject.getJSONObject("address");

String street = addressJSON.getString("street");

String city = addressJSON.getString("city");

String country = addressJSON.getString("country");

Address address = new Address(street, city, country);

Person person = new Person(name, age, male, address);

} catch (JSONException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

4.

[

{"name":"胡小威", "age"=20, "male":true, "address":{"street":"岳麓山南", "city":"长沙","country":"中国"}},

{"name":"赵小亮", "age"=22, "male":false, "address":{"street":"九州港", "city":"珠海","country":"中国"}}

]

Java代码

public void parseJsonArrayPerson(String json) {

ListPerson persons = new ArrayListPerson();

try {

jsonArray = new JSONArray(json);

for (int i = 0; i jsonArray.length(); i++) {

jsonObject = jsonArray.getJSONObject(i);

String name = jsonObject.getString("name");

int age = jsonObject.getInt("age");

boolean male = jsonObject.getBoolean("male");

JSONObject addressJSON = jsonObject.getJSONObject("address");

String street = addressJSON.getString("street");

String city = addressJSON.getString("city");

String country = addressJSON.getString("country");

Address address = new Address(street, city, country);

Person person = new Person(name, age, male, address);

persons.add(person);

Log.v("juno", person.toString());

}

} catch (JSONException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

Log.v("juno", persons.toString());

}

5. {"buses":{"bus":[{"last_foot_dist":"0","time":"37","segments":{"segment":[{"line_name":"立珊专线(中南大学学生公寓-长沙火车站)","foot_dist":"362","stat_xys":"","stats":"岳麓山南;湖南师大;二里半;岳麓山北;市四医院;华图教育(太平街口);牛耳教育(南阳街口);韭菜园;曙光路口;长岛路口;长沙火车站","end_stat":"长沙火车站","line_xys":"","line_dist":"7535","start_stat":"岳麓山南"}]},"foot_dist":"362","dist":"7897"},{"last_foot_dist":"0","time":"41","segments":{"segment":[{"line_name":"旅1路(科教新村-长沙火车站)","foot_dist":"337","stat_xys":"","stats":"岳麓山南;湖南师大;二里半;岳麓山北;市四医院;华图教育(太平街口);蔡锷中路口;韭菜园;乔庄;曙光路口;长岛路口;五一东村;车站路口;长沙火车站","end_stat":"长沙火车站","line_xys":"","line_dist":"7822","start_stat":"岳麓山南"}]},"foot_dist":"337","dist":"8159"}]}}

Java代码

public ListSalution parseJSON(String str){

Log.d("返回的JSON数据:", str);

ListSalution busList = new ArrayListSalution();

try {

JSONObject jsonObject = new JSONObject(str);

JSONObject busesJSON = jsonObject.getJSONObject("buses");

JSONArray busJSArray=busesJSON.getJSONArray("bus");

for(int i=0;ibusJSArray.length();i++){

JSONObject busJSObject = busJSArray.getJSONObject(i);

JSONObject segsJSObject=busJSObject.getJSONObject("segments");

JSONArray segJSArray=segsJSObject.getJSONArray("segment");

Salution st=new Salution();

for(int j=0;jsegJSArray.length();j++){

if(j==0){

JSONObject segJSObject = segJSArray.getJSONObject(j);

st.setLine_name1(segJSObject.getString("line_name"));

Log.d("line_name", segJSObject.getString("line_name"));

st.setStats1(segJSObject.getString("stats"));

st.setEnd_stat1(segJSObject.getString("end_stat"));

st.setStart_stat1(segJSObject.getString("start_stat"));

}

if(j==1){

JSONObject segJSObject = segJSArray.getJSONObject(j);

st.setLine_name2(segJSObject.getString("line_name"));

Log.d("line_name", segJSObject.getString("line_name"));

st.setStats2(segJSObject.getString("stats"));

st.setEnd_stat2(segJSObject.getString("end_stat"));

st.setStart_stat2(segJSObject.getString("start_stat"));

}

}

busList.add(st);

}

return busList;

} catch (JSONException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return null;

}

这里我只是简单获取了几个我想要的数据。

二、使用JSON类库Gson 来解析JSON

Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。

首先,从 code.google.com/p/google-gson/downloads/list下载GsonAPI

Java代码

google-gson-1.7.1-release.zip

再把gson-1.7.jar copy到libs

可以使用两种方法解析

①、通过获取JsonReader对象解析JSON数据:

Java代码

String jsonData = "[{\"username\":\"arthinking\",\"userId\":001},{\"username\":\"Jason\",\"userId\":002}]";

try{

JsonReader reader = new JsonReader(new StringReader(jsonData));

reader.beginArray();

while(reader.hasNext()){

reader.beginObject();

while(reader.hasNext()){

String tagName = reader.nextName();

if(tagName.equals("username")){

System.out.println(reader.nextString());

}

else if(tagName.equals("userId")){

System.out.println(reader.nextString());

}

}

reader.endObject();

}

reader.endArray();

}

catch(Exception e){

e.printStackTrace();

}

②、通过把JSON数据映射成一个对象,使用Gson对象的fromJson()方法获取一个对象数组进行操作

Java代码

Type listType = new TypeTokenLinkedListUser(){}.getType();

Gson gson = new Gson();

LinkedListUser users = gson.fromJson(jsonData, listType);

for (Iterator iterator = users.iterator(); iterator.hasNext();) {

User user = (User) iterator.next();

System.out.println(user.getUsername());

System.out.println(user.getUserId());

}

我一般是采用直接解析,添加类库神马的最讨厌了···

还有,抱怨一下,iteye的编辑弱爆了!!!

转载

android能看json吗,json android

本文目录一览: 1、json是什么格式,在安卓手机上用什么打开 2、android怎么看json数据格式? 3、android 解析json用那个包里面的方法比较好呢? 4、android 怎么看js

2023-12-08
android的json文件,android 读取json文

本文目录一览: 1、android JSON文件解析! 求指点。 2、android怎么解析json文件 3、Android 如何引用本地json文件 4、android怎么读取外部json文件 5、

2023-12-08
android传输json(android传输到iphone

本文目录一览: 1、Android 怎么把json数据传递到下个页面 2、Android 发送JSON数据问题 3、Android利用Json来进行网络数据传输 4、Android如何传输参数给一个u

2023-12-08
core解析json的笔记(c json解析)

本文目录一览: 1、如何解析json中map数据 2、fasterxml.jackson.core.jsonparser.feature是哪个jar包的 3、spring mvc 怎么获取json 4

2023-12-08
android集合转json,android常用的集合

本文目录一览: 1、Android 中解析 JSON 2、Android 怎么把list转为json 3、android如何生成复杂的json 4、安卓Json --JSONArray --Map 类

2023-12-08
Android JSON数据处理与解析

一、概述 随着移动设备的普及,以及大量数据的产生和处理,JSON作为一种轻量级的数据交换格式,在移动开发中也越来越广泛地被使用。本文将介绍Android中JSON数据的处理与解析,包括以下方面: 1.

2023-12-08
解析android应用中的JSON数据

2023-05-14
Python实现Android中JSON与对象的互转

2023-05-14
android中json使用,安卓开发解析json

2022-11-24
Android实战:使用fastjson解析JSON数据

一、 fastjson简介 fastjson是一个Java语言编写的高性能和通用的JSON序列化和反序列化类库,在阿里巴巴经济体的大力推动下成长为了业内流行的JSON库,具有反序列化飞速、易用性强、准

2023-12-08
json读写实例(js读json)

本文目录一览: 1、c#读取json 2、PHP JSON格式数据交互实例代码详解 3、java jSon实例编写 4、Android读取本地json文件的方法 c#读取json 先声明,以下两个方法

2023-12-08
如何在Android应用中使用JSON动画效果

2023-05-14
AndroidString转Json

2023-05-20
Android JSON解析:快速获取和提取数据

2023-05-14
Android JSON数据解析方法分享

2023-05-14
将Android字符串转换成JSON格式的实用方法

2023-05-14
android訪問php,android访问assets里的

2023-01-04
android的js框架(android js引擎)

本文目录一览: 1、Android真的推荐用MVI模式?MVI和MVVM有什么区别? 2、在Android上怎样实现JAVA和JS交互 3、android 混合开发 用什么框架好 4、Android如

2023-12-08
java如何接收json数据(json如何获取数据)

本文目录一览: 1、多层JSON数据,java后台如何接收 2、java怎么接收json数据 博客园 3、JAVA如何接收一组json数据? 4、java怎么接收android请求过来的json数据

2023-12-08
java实体接收json(java中实体)

本文目录一览: 1、java怎么接收json数据 博客园 2、JAVA如何接收一组json数据? 3、java怎么接收android请求过来的json数据 java怎么接收json数据 博客园 imp

2023-12-08