下面我来为您提供关于“Android解析json数据示例代码(三种方式)”的完整攻略。
下面我来为您提供关于“Android解析json数据示例代码(三种方式)”的完整攻略。
Android解析json数据示例代码(三种方式)
在 Android 应用开发中,我们需要经常与后端 API 接口进行数据交互,并解析 JSON 格式的数据。本文将介绍三种常用的 Android 解析 JSON 数据的方法。
GSON
GSON 是 Google 推出的一个开源的 JSON 库,可以轻松地将 JSON 字符串转换成 Java 对象,也可将 Java 对象转换成 JSON 字符串。
使用步骤:
- 在 build.gradle 文件中添加 GSON 依赖:
groovy
implementation 'com.google.code.gson:gson:2.8.5'
- 声明 Java 类,用于将 JSON 中的数据映射成对象:
java
public class User {
public String name;
public int age;
public String address;
}
- 创建一个 GSON 对象:
java
Gson gson = new Gson();
- 将 JSON 字符串解析成 Java 对象:
java
String json = "{ \"name\": \"Jack\", \"age\": 18, \"address\": \"Beijing\" }";
User user = gson.fromJson(json, User.class);
- 将 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 串。
使用步骤:
- 将 JSON 字符串转换成 JSONObject 对象:
java
String json = "{ \"name\": \"Jack\", \"age\": 18, \"address\": \"Beijing\" }";
JSONObject jsonObject = new JSONObject(json);
- 从 JSONObject 中获取数据:
java
String name = jsonObject.getString("name");
int age = jsonObject.getInt("age");
String address = jsonObject.getString("address");
Jackson
Jackson 是一个常用的 JSON 库,可以实现 JSON 和 Java 间的转换。
使用步骤:
- 在 build.gradle 文件中添加 Jackson 依赖:
groovy
implementation 'com.fasterxml.jackson.core:jackson-databind:2.11.2'
- 创建 ObjectMapper 对象:
java
ObjectMapper mapper = new ObjectMapper();
- 将 JSON 字符串转换成 Java 对象:
java
String json = "{ \"name\": \"Jack\", \"age\": 18, \"address\": \"Beijing\" }";
User user = mapper.readValue(json, User.class);
- 将 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数据示例代码(三种方式)
基础教程推荐
- java – 用MySQL的JDBC真的很慢,不知道为什么 2023-11-10
- SpringBoot 返回Json实体类属性大小写的解决 2024-03-03
- SpringBoot集成Graphql Query实战示例 2023-05-18
- 一文教会你如何搭建vue+springboot项目 2022-11-08
- SpringBoot多数据源读写分离的自定义配置问题及解决方法 2022-12-11
- Java实现文件及文件夹的删除 2023-01-29
- JSP 自定义标签实现数据字典的实例 2023-07-30
- Javaweb会话跟踪技术Cookie和Session的具体使用 2023-03-07
- jsp Hibernate批量更新和批量删除处理代码 2023-12-17
- SpringBoot详解MySQL如何实现读写分离 2023-05-24