Rob*_*cks 116 java serialization json java-me
Java/J2ME中是否有一种转换字符串的方法,例如:
{name:"MyNode", width:200, height:100}
Run Code Online (Sandbox Code Playgroud)
在一行代码中的内部Object表示形式?
因为目前的方法太繁琐了:
Object n = create("new");
setString(p, "name", "MyNode");
setInteger(p, "width", 200);
setInteger(p, "height", 100);
Run Code Online (Sandbox Code Playgroud)
也许是一个JSON库?
ZZ *_*der 108
我使用了其中一些,我最喜欢的是,
http://code.google.com/p/json-simple/
该库非常小,因此非常适合J2ME.
您可以像这样在一行中将JSON解析为Java对象,
JSONObject json = (JSONObject)new JSONParser().parse("{\"name\":\"MyNode\", \"width\":200, \"height\":100}");
System.out.println("name=" + json.get("name"));
System.out.println("width=" + json.get("width"));
Run Code Online (Sandbox Code Playgroud)
Sta*_*Man 79
最简单的选择是杰克逊:
MyObject ob = new ObjectMapper().readValue(jsonString, MyObject.class);
Run Code Online (Sandbox Code Playgroud)
还有其他类似的简单易用的库(已经提到过Gson); 但有些选择更加费力,就像原始的org.json库一样,即使你不需要它们也需要你创建中间的"JSONObject".
suf*_*waz 23
您可以使用Google GSON轻松完成此操作.
假设您有一个名为User的类,其中包含用户,宽度和高度字段,并且您希望将以下json字符串转换为User对象.
{"name":"MyNode", "width":200, "height":100}
您可以轻松地执行此操作,而无需使用以下代码进行强制转换(记住nimcap的注释;)):
Gson gson = new Gson();
final User user = gson.fromJson(jsonString, User.class);
Run Code Online (Sandbox Code Playgroud)
其中jsonString是上面的JSON String.
有关详情,请访问https://code.google.com/p/google-gson/
Est*_*ber 22
你有很多Java的JSON解析器:
JSONObject.java
JSONObject是名称/值对的无序集合.它的外部形式是一个用大括号包裹的字符串,名称和值之间有冒号,值和名称之间有逗号.内部表单是一个对象,具有用于按名称访问值的get()和opt()方法,以及用于按名称添加或替换值的put()方法.值可以是以下任何类型:Boolean,JSONArray,JSONObject,Number和String,或JSONObject.NULL对象.
JSONArray.java
JSONArray是一个有序的值序列.它的外部形式是一个用方括号括起来的字符串,在值之间用逗号表示.内部表单是一个对象,具有通过索引访问值的get()和opt()方法,以及用于添加或替换值的put()方法.值可以是以下任何类型:Boolean,JSONArray,JSONObject,Number和String,或JSONObject.NULL对象.
JSONStringer.java
JSONStringer是一个用于快速生成JSON文本的工具.
JSONWriter.java
JSONWriter是一种用于将JSON文本快速写入流的工具.
JSONTokener.java
JSONTokener接受源字符串并从中提取字符和标记.它由JSONObject和JSONArray构造函数用于解析JSON源字符串.
JSONException.java
检测到语法或过程错误时抛出JSONException.
JSONString.java
JSONString是一个允许类实现其JSON序列化的接口.
JSON官方网站是你应该看的地方.它提供了可以与Java一起使用的各种库,我个人使用了这个,JSON-lib是站点中工作的一个实现,所以它在这个页面中具有完全相同的类 - 方法等.
如果您点击那里的html链接,您可以找到您想要的任何内容.
简而言之:
要创建一个json对象和一个json数组,代码是:
JSONObject obj = new JSONObject();
obj.put("variable1", o1);
obj.put("variable2", o2);
JSONArray array = new JSONArray();
array.put(obj);
Run Code Online (Sandbox Code Playgroud)
o1,o2,可以是基本类型(long,int,boolean),字符串或数组.
反向过程相当简单,我的意思是将字符串转换为json对象/数组.
String myString;
JSONObject obj = new JSONObject(myString);
JSONArray array = new JSONArray(myString);
Run Code Online (Sandbox Code Playgroud)
为了正确解析,您只需要知道您是在解析数组还是对象.
为此使用谷歌GSON库
public static <T> T getObject(final String jsonString, final Class<T> objectClass) {
Gson gson = new Gson();
return gson.fromJson(jsonString, objectClass);
}
Run Code Online (Sandbox Code Playgroud)
http://iandjava.blogspot.in/2014/01/java-object-to-json-and-json-to-java.html
像许多人已经说过的那样,使用JSON.simple做一个非常简单的方法,如下所示
import org.json.JSONObject;
String someJsonString = "{name:"MyNode", width:200, height:100}";
JSONObject jsonObj = new JSONObject(someJsonString);
Run Code Online (Sandbox Code Playgroud)
然后使用jsonObj处理JSON对象.例如jsonObj.get("name");
根据以下链接,JSON.simple显示了小型和大型JSON文件的恒定效率
http://blog.takipi.com/the-ultimate-json-library-json-simple-vs-gson-vs-jackson-vs-json/
归档时间: |
|
查看次数: |
447475 次 |
最近记录: |