在Android中操作Json数据

在极客学院看了相关视频,觉得还是值得记录一下。

虽然知道大家既然能看到这篇文章,那就至少知道什么是Json了,不过为了文章的完整性,这里还是简单介绍一下Json,大都百度的,可忽略。

Json:JavaScript对象表示法(JavaScript Object Notation)。

Json 是存储和交换文本信息的语法。类似 XML。

Json 比 XML 更小、更快、更易解析。

Json 的数据书写格式为  名称:值。

如:

{ "firstName":"John" , "lastName":"Doe" }

数组形式:

{
"employees": [
{ "firstName":"John" , "lastName":"Doe" },
{ "firstName":"Anna" , "lastName":"Smith" },
{ "firstName":"Peter" , "lastName":"Jones" }
]
}

简明易懂。

为了android中操作Json数据,我们先准备一个简单的数据,命名为 test.json,并放在新建工程的 assets文件夹下面。 

test.json文件里面的json数据就为上面数组。

我们的目的是把 test.json文件里的json数据读出并通过System.out打印到logcat中。

MainActivity.java文件:

package com.android.testjson;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		try {
			
			InputStreamReader isr = new InputStreamReader(getAssets().open("test.json"), "UTF-8");
			BufferedReader br = new BufferedReader(isr);
			String line;
			StringBuilder builder = new StringBuilder();
			while((line = br.readLine()) != null){
				builder.append(line);
			}
			br.close();
			isr.close();
			JSONObject root = new JSONObject(builder.toString());
			JSONArray array = root.getJSONArray("employees");
			for(int i=0;i<array.length();i++){
				JSONObject lan = array.getJSONObject(i);
				System.out.println("-----------------------");
				System.out.println("firstName="+lan.getString("firstName"));
				System.out.println("lastName="+lan.getString("lastName"));
			}
			
		} catch (UnsupportedEncodingException e) {	
			e.printStackTrace();		
		} catch (IOException e) {
			e.printStackTrace();
		} catch (JSONException e) {
			e.printStackTrace();
		}
	}

}

很简单的几句代码,就把json数据成功读取出来了。

    

个人觉得作为作为一个例子,就相当于一个模板,以后如果用到,放上面一套就好了,节省了时间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Android ,我们可以使用以下步骤来使用 JSON 数据: 1. 首先,我们需要将 JSON 数据下载或从 API 获取到。可以使用 HttpURLConnection 或 OkHttp 等库进行网络请求。 2. 接下来,我们需要解析 JSON 数据。可以使用 Android 自带的 JSONObject 或 JSONArray 类,也可以使用第三方库如 Gson、Jackson 等。 3. 将解析后的数据存储到对象或集合,并在应用程序使用它们。 举个例子,以下是一个使用 Gson 库解析 JSON 数据的示例代码: ```java // 创建 Gson 对象 Gson gson = new Gson(); // 解析 JSON 数据 String json = "{ \"name\": \"John\", \"age\": 30 }"; Person person = gson.fromJson(json, Person.class); // 在应用程序使用解析后的数据 String name = person.getName(); int age = person.getAge(); ``` 其,Person 类表示 JSON 数据的对象,它包含两个属性:name 和 age。fromJson() 方法将 JSON 数据转换为 Person 对象。 希望这个例子可以帮助你了解如何在 Android 使用 JSON 数据。 ### 回答2: 在Android使用JSON数据主要分为两个步骤:解析JSON数据和生成JSON数据。 1. 解析JSON数据Android提供了JsonReader和JsonWriter两个类来解析和生成JSON数据JsonReader用于读取JSON数据JsonWriter用于生成JSON数据。 首先,我们可以通过网络请求获取到JSON数据,然后使用JsonReader类将其解析为Java对象。具体步骤如下: 1) 创建一个InputStream对象,用于读取JSON数据。 2) 将InputStream对象传递给JsonReader的构造函数,创建一个JsonReader对象。 3) 使用JsonReader对象的方法逐步解析JSON数据,将其转换为Java对象。 例如,假设我们有一个JSON数据如下: { "name": "John", "age": 25, "city": "New York" } 我们可以使用以下代码将其解析为Java对象: InputStream inputStream = // 从网络请求获取到的数据JsonReader reader = new JsonReader(new InputStreamReader(inputStream, "UTF-8")); String name = ""; int age = 0; String city = ""; reader.beginObject(); while (reader.hasNext()) { String key = reader.nextName(); if (key.equals("name")) { name = reader.nextString(); } else if (key.equals("age")) { age = reader.nextInt(); } else if (key.equals("city")) { city = reader.nextString(); } } reader.endObject(); reader.close(); 现在,我们可以使用name、age和city变量来访问解析后的JSON数据。 2. 生成JSON数据Android生成JSON数据也很简单。我们可以使用JsonWriter类来生成JSON数据。 例如,我们要生成以下JSON数据: { "name": "John", "age": 25, "city": "New York" } 我们可以使用以下代码生成: StringWriter stringWriter = new StringWriter(); JsonWriter writer = new JsonWriter(stringWriter); writer.beginObject(); writer.name("name").value("John"); writer.name("age").value(25); writer.name("city").value("New York"); writer.endObject(); writer.close(); String json = stringWriter.toString(); 现在,json变量保存的就是生成的JSON数据。 总结: 在Android使用JSON数据,我们可以通过JsonReader类将JSON数据解析为Java对象,然后使用该对象进行操作;也可以使用JsonWriter类生成JSON数据。以上就是在Android使用JSON数据的基本操作。 ### 回答3: 在Android,可以通过以下步骤使用JSON数据: 1. 获取JSON数据:可以通过网络请求、本地文件或者数据库等方式获取JSON数据。一般来说,最常见的方式是使用网络请求获取JSON数据。 2. 解析JSON数据Android提供了JsonReader和JsonParser等工具类来解析JSON数据。可以根据JSON数据的结构和需求选择合适的解析方式。JsonReader主要是逐行读取JSON数据,而JsonParser则可以将整个JSON数据解析为一个Json对象或者Json数组。 3. 解析JSON对象:如果JSON数据是一个对象,可以使用JsonObject类来解析。首先将JSON数据转换为Json对象,然后可以通过getXXX()方法来获取对应的键值对。 4. 解析JSON数组:如果JSON数据是一个数组,可以使用JsonArray类来解析。同样,需要先将JSON数据转换为Json数组,然后可以通过getXXX()方法来遍历获取其的元素。 5. 处理JSON数据:一旦解析完成,就可以根据需要对JSON数据进行处理。可以将数据展示在UI界面上,或者保存到数据,还可以进行其他的业务逻辑处理。 总的来说,在Android使用JSON数据的过程就是获取JSON数据、解析JSON数据、处理JSON数据的过程。通过这种方式,我们可以方便地在Android应用使用和展示来自网络或本地的JSON数据

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值