目录
- 前言
- 一、Main(非安卓环境)方法下运行
- 二、安卓坏境下运行
- 三、why?
前言
原生的json,即org.json.JSONObject; 在Android Studio中的Main方法里运行报错,但在安卓程序运行过程正常
一、Main(非安卓环境)方法下运行
static void test() {
try {
// 创建一个 JSON 对象
JSONObject jsonObject = new JSONObject();
jsonObject.put("name", "Alice");
jsonObject.put("age", 25);
// 将 JSON 对象转换为字符串
String jsonString = jsonObject.toString();
// 解析 JSON 字符串
JSONObject parsedObject = new JSONObject(jsonString);
String name = parsedObject.optString("name");
int age = parsedObject.optInt("age");
// 打印解析结果
Log.d("JSON", "Name: " + name);
Log.d("JSON", "Age: " + age);
} catch (JSONException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
test();
}
二、安卓坏境下运行
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
fManager = getSupportFragmentManager();
test();
}
void test() {
try {
// 创建一个 JSON 对象
JSONObject jsonObject = new JSONObject();
jsonObject.put("name", "Alice");
jsonObject.put("age", 25);
// 将 JSON 对象转换为字符串
String jsonString = jsonObject.toString();
// 解析 JSON 字符串
JSONObject parsedObject = new JSONObject(jsonString);
String name = parsedObject.optString("name");
int age = parsedObject.optInt("age");
// 打印解析结果
Log.d("JSON", "Name: " + name);
Log.d("JSON", "Age: " + age);
} catch (JSONException e) {
e.printStackTrace();
}
}
输出:
三、why?
其实很简单啊,这是因为 org.json.JSONObject 相关类是 Android SDK 中的一个类,它与普通的 Java 应用程序环境不完全兼容。只能在Android 应用程序中使用 JSONObject,而不是在普通的 Java 应用程序中。
很好,又水了一篇文章…