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

下面我来为您提供关于“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数据示例代码(三种方式)

基础教程推荐