JSON.stringify - android

问题描述 投票:0回答:4

有什么方法可以在android中执行

JSON.stringify
吗?

我一直在网络上看到

JSON.stringify(JSONObject)
,但我在android中找不到JSON类。

有什么帮助吗?

java android json stringify
4个回答
33
投票

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);

16
投票

我知道这已经很旧了,但我遇到了同样的问题。而且这里似乎没有太多相关内容...所以我想我会添加我学到的东西。

我使用了第三方库来帮助实现这一目标:

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]"}


1
投票

JAVA 中 JSON 对象的基本操作可以借助

org.json
包(包含在 Android SDK 中)或
javax.json
(JAVA EE 的一部分)来完成。它们都有
toString()
将 JSONObject 转换为字符串的方法:

//assuming you have object `jsonobject` of class `JSONObject`
String output = jsonobject.toString()

0
投票

更简单导入com.google.gson.Gson,代码示例:

String json =  new Gson().toJson(yourObject);

© www.soinside.com 2019 - 2024. All rights reserved.