Pri*_*han 137 parsing android json
我想以JSON对象的形式将消息发送到服务器并解析来自服务器的JSON响应.
JSON对象的示例
{
"post": {
"username": "John Doe",
"message": "test message",
"image": "image url",
"time": "current time"
}
}
Run Code Online (Sandbox Code Playgroud)
我试图通过逐个属性来手动解析JSON.我可以使用任何库/实用程序来简化此过程吗?
Sta*_*Man 118
我很惊讶这些没有被提及:但是使用json.org的小包装而不是使用简单的手动过程,GSon和Jackson使用起来更方便.所以:
因此,您实际上可以绑定到您自己的POJO,而不是一些半assed树节点或列表和地图.(并且至少杰克逊允许绑定到这样的东西(也许是GSON,也不确定),JsonNode,Map,List,如果你真的想要这些而不是'真正的'对象)
编辑2014年3月19日:
另一个新的竞争者是Jackson jr库:它使用与Jackson(jackson-core)相同的快速流式解析器/生成器,但数据绑定部分很小(50kB).功能更加有限(没有注释,只有普通的Java Bean),但性能方面应该很快,初始化(首次调用)开销也很低.所以它可能是一个不错的选择,特别是对于较小的应用程序
Pri*_*han 31
如果数据具有明确的结构,GSON是最容易使用的,也是最简单的方法.
下载gson.
将其添加到引用的库中.
package com.tut.JSON;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class SimpleJson extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String jString = "{\"username\": \"tom\", \"message\": \"roger that\"} ";
GsonBuilder gsonb = new GsonBuilder();
Gson gson = gsonb.create();
Post pst;
try {
pst = gson.fromJson(jString, Post.class);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
邮政课程代码
package com.tut.JSON;
public class Post {
String message;
String time;
String username;
Bitmap icon;
}
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你.
| 归档时间: |
|
| 查看次数: |
157243 次 |
| 最近记录: |