有什么方法可以在android中执行
JSON.stringify
吗?
我一直在网络上看到
JSON.stringify(JSONObject)
,但我在android中找不到JSON类。
有什么帮助吗?
JSON.stringify(JSONObject)
是一个 Javascript 函数,在 Java 中不可用。如果您使用的是 Android SDK 中内置的 org.json.*
包,则相当于简单地在 toString()
实例上调用 JSONObject
,或者更人性化的 toString(int)
。
http://developer.android.com/reference/org/json/JSONObject.html#toString() http://developer.android.com/reference/org/json/JSONObject.html#toString(int)
JSONObject obj = ...
String jsonString = obj.toString(4);
我知道这已经很旧了,但我遇到了同样的问题。而且这里似乎没有太多相关内容...所以我想我会添加我学到的东西。
我使用了第三方库来帮助实现这一目标:
org.codehaus.jackson
所有的下载都可以在这里找到。
对于基本 JSON 功能,您需要将以下 jar 添加到项目的库中: 杰克逊映射器-asl 和 杰克逊核心-asl
选择您的项目需要的版本。 (通常您可以使用最新的稳定版本)。
将它们导入到您的项目库后,请将以下
import
行添加到您的代码中:
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
定义了 java 对象并为其分配了值,您希望将其转换为 JSON 并作为 RESTful Web 服务的一部分返回
User u = new User();
u.firstName = "Sample";
u.lastName = "User";
u.email = "[email protected]";
ObjectMapper mapper = new ObjectMapper();
try {
// convert user object to json string and return it
return mapper.writeValueAsString(u);
}
// catch various errors
catch (JsonGenerationException e) {
e.printStackTrace();
}
catch (JsonMappingException e) {
e.printStackTrace();
}
结果应该如下所示:
{"firstName":"Sample","lastName":"User","email":"[email protected]"}
JAVA 中 JSON 对象的基本操作可以借助
org.json
包(包含在 Android SDK 中)或 javax.json
(JAVA EE 的一部分)来完成。它们都有 toString()
将 JSONObject 转换为字符串的方法:
//assuming you have object `jsonobject` of class `JSONObject`
String output = jsonobject.toString()
更简单导入com.google.gson.Gson,代码示例:
String json = new Gson().toJson(yourObject);