现在使用org.json,可以提供JSONObject和JSONArray对象。
但是对于形如“{"a":"b","c":"d"}”的字符串如何转换为一个json对象?
我查过资料,不少人建议使用json-lib。
我测试了一下,json-lib也提供以上两个对象,但是与原有的不兼容。方法也有差异。
例如原来的put()方法变成了add()
我的项目已经进入中后期,要是换了的话工作量会很大。
有没有人给点儿帮助?
是说像这样的字符串?
[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就行了……
用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)