JAVA中如何将一个json形式的字符串转为json对象?

现在使用org.json,可以提供JSONObject和JSONArray对象。
但是对于形如“{"a":"b","c":"d"}”的字符串如何转换为一个json对象?

我查过资料,不少人建议使用json-lib。
我测试了一下,json-lib也提供以上两个对象,但是与原有的不兼容。方法也有差异。
例如原来的put()方法变成了add()
我的项目已经进入中后期,要是换了的话工作量会很大。
有没有人给点儿帮助?

7个回答

是说像这样的字符串?
[code="java"]import java.io.*;
import org.json.*;

public class Demo {
public static void main(String[] args) throws Exception {
String str = "{\"a\":\"b\", \"c\":\"d\"}";
JSONObject a = new JSONObject(str);
System.out.println(a); // {"c":"d","a":"b"}
System.out.println(a.get("c")); // d
}
}[/code]
直接把字符串作为参数交给JSONObject就行了……

lihong22
lihong22 大哥,你这个要导入哪个包啊?谢谢
7 年多之前 回复

用stringtree.jar
http://stringtree.org/stringtree-json.html
很方便

直接用json.jar就可以了吧
里面有直接从对象转到JSON格式字符串的方法

用[url=http://code.google.com/p/google-gson/]google-gson[/url] 吧

下载jar包后:

[code="java"] Gson gson = new Gson();

            List<Map<String, String>> ret = new ArrayList<Map<String, String>>();

            for (int i = 1; i < 9; i ++) {
                    HashMap<String, String> jsonMap = new HashMap<String, String>();
                    jsonMap.put("id", text + "-id" + i);
                    jsonMap.put("name", text + "name" + i);
                    ret.add(jsonMap);
            }



            gson.toJson(ret);//这样就可以了

[/code]

json格式本身不带类型的。
原有的类型和json转的类型不兼容的话

可以new一个旧类型,然后使用beanutils将心的对象各个属性值复制过去。

Map map = new HashMap();
map.put("a","aaaa");
map.put("b","bbbb";
JSONSerializer.toJSON(map)

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问