我有一个名为jsonString的字符串变量:
{"phonetype":"N95","cat":"WP"}
现在我想把它转换成JSON对象。我在谷歌上搜索了更多,但没有得到任何预期的答案!
我有一个名为jsonString的字符串变量:
{"phonetype":"N95","cat":"WP"}
现在我想把它转换成JSON对象。我在谷歌上搜索了更多,但没有得到任何预期的答案!
当前回答
必须导入org.json
JSONObject jsonObj = null;
try {
jsonObj = new JSONObject("{\"phonetype\":\"N95\",\"cat\":\"WP\"}");
} catch (JSONException e) {
e.printStackTrace();
}
其他回答
必须导入org.json
JSONObject jsonObj = null;
try {
jsonObj = new JSONObject("{\"phonetype\":\"N95\",\"cat\":\"WP\"}");
} catch (JSONException e) {
e.printStackTrace();
}
使用org。json库:
try {
JSONObject jsonObject = new JSONObject("{\"phonetype\":\"N95\",\"cat\":\"WP\"}");
}catch (JSONException err){
Log.d("Error", err.toString());
}
java7解决方案
import javax.json.*;
...
String TEXT;
JsonObject body = Json.createReader(new StringReader(TEXT)).readObject()
;
如果您正在使用http://json-lib.sourceforge.net (net.sf.json.JSONObject)
这很简单:
String myJsonString;
JSONObject json = JSONObject.fromObject(myJsonString);
or
JSONObject json = JSONSerializer.toJSON(myJsonString);
获取值,然后用 json.getString(param), json.getInt(param)等等。
我喜欢为此使用google-gson,这正是因为我不需要直接使用JSONObject。
在这种情况下,我将有一个类,将对应于JSON对象的属性
class Phone {
public String phonetype;
public String cat;
}
...
String jsonString = "{\"phonetype\":\"N95\",\"cat\":\"WP\"}";
Gson gson = new Gson();
Phone fooFromJson = gson.fromJson(jsonString, Phone.class);
...
然而,我认为你的问题更像是,我如何从JSON字符串中得到一个实际的JSONObject对象。
我在看google-json api,找不到任何直接的东西 org。json的api,这可能是你想要使用的,如果你非常需要使用一个基本的JSONObject。
http://www.json.org/javadoc/org/json/JSONObject.html
使用org.json.JSONObject(另一个完全不同的API)如果你想做一些像…
JSONObject jsonObject = new JSONObject("{\"phonetype\":\"N95\",\"cat\":\"WP\"}");
System.out.println(jsonObject.getString("phonetype"));
我认为google-gson的美妙之处在于您不需要处理JSONObject。你只需要获取json,传递想要反序列化的类,你的类属性就会与json匹配,但话说回来,每个人都有自己的需求,也许你不能奢侈地在反序列化端拥有预先映射的类,因为json生成端可能太动态了。在这种情况下,只需使用json.org。