将JSONObject转换为String(Android)

13

如何将类似于 "{hello1: hi, hello2: hey}" 的 JSONObject 转换为没有大括号 { } 的字符串 "hello1: hi, hello2: hey"

我知道可以使用 JSONObject.tostring,但这样会得到带有大括号的字符串。

谢谢大家。

2个回答

17

只需使用子字符串或字符串替换即可。

伪代码子字符串示例:

JSONObject a  = new JSONObject("{hello1: hi, hello2: hey}");
String b = a.toString().substring(1, a.toString().length() - 1);

伪代码字符串替换示例:

JSONObject a  = new JSONObject("{hello1: hi, hello2: hey}");
String b = a.toString().replace("{", "");
String c = b.toString().replace("}", "");

2
请仔细拼写 length,而不是 lenght :) - user3241507

3
假设您想做的事情比您的问题所示更为复杂,并且您可以对将要使用的JSON进行一些假设,那么您可以执行以下操作来获取任何输出格式。
JSONObject json  = new JSONObject("{hello1: hi, hello2: hey}");

StringBuilder sb = new StringBuilder();
for(String k : json.keys()) {
    sb.append(k);
    sb.append(": ").
    sb.append(json.getString(k));
    sb.append(", ")
}

// do something with sb.toString()

再说一遍,我可能读入了太多(在这种情况下,@ProgrammerXR的答案就可以解决问题)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接