Android解析json数据示例代码(三种方式)

下面我来为您提供关于“Android解析json数据示例代码(三种方式)”的完整攻略。

Android解析json数据示例代码(三种方式)

在 Android 应用开发中,我们需要经常与后端 API 接口进行数据交互,并解析 JSON 格式的数据。本文将介绍三种常用的 Android 解析 JSON 数据的方法。

GSON

GSON 是 Google 推出的一个开源的 JSON 库,可以轻松地将 JSON 字符串转换成 Java 对象,也可将 Java 对象转换成 JSON 字符串。

使用步骤:

  1. 在 build.gradle 文件中添加 GSON 依赖:

groovy
implementation 'com.google.code.gson:gson:2.8.5'

  1. 声明 Java 类,用于将 JSON 中的数据映射成对象:

java
public class User {
public String name;
public int age;
public String address;
}

  1. 创建一个 GSON 对象:

java
Gson gson = new Gson();

  1. 将 JSON 字符串解析成 Java 对象:

java
String json = "{ \"name\": \"Jack\", \"age\": 18, \"address\": \"Beijing\" }";
User user = gson.fromJson(json, User.class);

  1. 将 Java 对象转换成 JSON 字符串:

java
User user = new User();
user.name = "Jack";
user.age = 18;
user.address = "Beijing";
String json = gson.toJson(user);

JSONObject

JSONObject 是 Android 内置的一个 JSON 类,可以方便地解析 JSON 串。

使用步骤:

  1. 将 JSON 字符串转换成 JSONObject 对象:

java
String json = "{ \"name\": \"Jack\", \"age\": 18, \"address\": \"Beijing\" }";
JSONObject jsonObject = new JSONObject(json);

  1. 从 JSONObject 中获取数据:

java
String name = jsonObject.getString("name");
int age = jsonObject.getInt("age");
String address = jsonObject.getString("address");

Jackson

Jackson 是一个常用的 JSON 库,可以实现 JSON 和 Java 间的转换。

使用步骤:

  1. 在 build.gradle 文件中添加 Jackson 依赖:

groovy
implementation 'com.fasterxml.jackson.core:jackson-databind:2.11.2'

  1. 创建 ObjectMapper 对象:

java
ObjectMapper mapper = new ObjectMapper();

  1. 将 JSON 字符串转换成 Java 对象:

java
String json = "{ \"name\": \"Jack\", \"age\": 18, \"address\": \"Beijing\" }";
User user = mapper.readValue(json, User.class);

  1. 将 Java 对象转换成 JSON 字符串:

java
User user = new User();
user.name = "Jack";
user.age = 18;
user.address = "Beijing";
String json = mapper.writeValueAsString(user);

示例

下面是一个使用 GSON 将 JSON 字符串解析成 Java 对象的例子:

public class MainActivity extends AppCompatActivity {

    private TextView mTextView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mTextView = findViewById(R.id.text_view);

        Gson gson = new Gson();
        String json = "{ \"name\": \"Jack\", \"age\": 18, \"address\": \"Beijing\" }";
        User user = gson.fromJson(json, User.class);

        String text = "Name: " + user.name + "\nAge: " + user.age + "\nAddress: " + user.address;
        mTextView.setText(text);
    }
}

class User {
    public String name;
    public int age;
    public String address;
}

上述示例中,我们首先创建了一个 GSON 对象,然后将 JSON 字符串解析成 User 对象,最后将 User 对象中的数据显示在 TextView 中。

另一个示例,使用 JSONObject 解析:

public class MainActivity extends AppCompatActivity {

    private TextView mTextView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mTextView = findViewById(R.id.text_view);

        String json = "{ \"name\": \"Jack\", \"age\": 18, \"address\": \"Beijing\" }";
        try {
            JSONObject jsonObject = new JSONObject(json);
            String name = jsonObject.getString("name");
            int age = jsonObject.getInt("age");
            String address = jsonObject.getString("address");

            String text = "Name: " + name + "\nAge: " + age + "\nAddress: " + address;
            mTextView.setText(text);
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
}

上述示例中,我们首先将 JSON 字符串转换成 JSONObject 对象,然后从 JSONObject 中获取数据,最后将数据显示在 TextView 中。

希望这篇文章能够对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Android解析json数据示例代码(三种方式) - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • Spring Boot Shiro在Web应用中的作用详解

    Spring Boot Shiro在Web应用中的作用详解 简介 Spring Boot Shiro是基于Spring Boot和Shiro的安全管理框架,可以方便地集成到Web应用中。它提供了一种简单、灵活且强大的身份验证和授权机制,可以在应用中实现多种安全需求,并且易于扩展和定制。 快速开始 依赖 在您的pom.xml文件中添加Spring Boot S…

    Java 2023年6月2日
    00
  • Spring Boot如何优雅的使用多线程实例详解

    Spring Boot如何优雅的使用多线程实例详解 在高并发的应用场景中,多线程是提高系统性能的重要手段。Spring Boot提供了简单易用的多线程支持,本文将详细讲解Spring Boot如何优雅的使用多线程,包括如何创建线程、线程之间如何通信等内容。 创建线程的三种方法 继承Thread类 public class MyThread extends T…

    Java 2023年5月15日
    00
  • Spring Boot启动过程完全解析(二)

    SpringBoot启动过程完全解析(二) 在上一篇文章中,我们介绍了Spring Boot的启动过程。本文将继续深入探讨Spring Boot的启动过程,并提供两个示例来演示如何使用Spring Boot。 1. Spring Boot的启动过程 Spring Boot的启动过程可以分为以下几个步骤: 加载Spring Boot的配置文件 创建Spring…

    Java 2023年5月14日
    00
  • maven为MANIFEST.MF文件添加内容的方法

    下面是使用 Maven 为 MANIFEST.MF 文件添加内容的方法的详细攻略。 1. 使用 Maven 插件配置 MANIFEST.MF 文件 Maven 提供了一个叫做 maven-jar-plugin 的插件,可以在 Maven 构建过程中配置 MANIFEST.MF 文件。我们可以通过在 pom.xml 文件中配置此插件来实现在 MANIFEST.…

    Java 2023年5月20日
    00
  • 手把手教你写Maven的archetype项目脚手架

    我来为你详细讲解“手把手教你写Maven的archetype项目脚手架”的完整攻略。 什么是Maven的archetype? Maven的archetype是一种脚手架工具,它可以帮助我们快速创建符合规范的Maven项目结构,包含必要的文件和依赖,以满足特定的需求。通常来说,一个archetype文件包含了一个或多个模板(template),这些模板用来生成…

    Java 2023年5月20日
    00
  • Java的Struts框架报错“ForwardConfigException”的原因与解决办法

    当使用Java的Struts框架时,可能会遇到“ForwardConfigException”错误。这个错误通常由以下原因之一起: 无效的转发路径:如果转发路径无效,则可能会出现此错误。在这种情况下,需要检查转发路径以解决此问题。 无效的转发名称:如果转发名称无效,则可能会出现此错误。在这种情况下,需要检查转发名称以解决此问题。 以下是两个实例: 例 1 如…

    Java 2023年5月5日
    00
  • MyBatis动态SQL特性详解

    MyBatis动态SQL特性详解 什么是动态SQL 动态SQL是指在运行时根据不同的条件来动态生成SQL语句的技术,MyBatis支持动态SQL。 使用动态SQL可以在不同的查询条件下进行灵活的SQL组合,提高SQL语句的复用性和灵活性。 动态SQL实现方式 MyBatis提供了两种方式来实现动态SQL:使用XML实现和使用注解实现。 使用XML实现 if元…

    Java 2023年5月19日
    00
  • java单例五种实现模式解析

    Java单例五种实现模式解析 什么是单例模式? 单例模式是指一个类只能被实例化一次,并且全局都可以访问到这个实例。在实际开发中,很多情况下我们只需要一个实例,例如全局配置信息、日志管理等等,这时候使用单例模式可以节省系统资源,减少不必要的开销。 单例模式的特点 保证一个类只有一个实例。 提供一个访问该实例的全局入口。 不能被其他对象实例化。 五种实现模式 1…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部