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