在我的应用程序中,我从socketio获得了一个Object []。我想用JSON来解析它。但我该怎么做?
详细信息:
socketio.connect("XXXXXXXXX",new IOCallback() {
@Override
public void on(String event, IOAcknowledge ack,
Object... args) {
// TODO Auto-generated method stub
System.out.println("Server triggered event: " + event + " ack: " + ack + " args: " + args);
switch(event){
case "msg":
parseMSG(args);
}
}
所以从这里开始," args"是这样的:
[{"a":"aaaa","b":"bbbbbb"}]
它是一个json数组,因此在" parseMSG [args]"我想解析这个对象,这是我的代码:
public void parseMSG(Object[] args) {
// TODO Auto-generated method stub
try {
JSONArray inLine = new JSONArray(args);
JSONObject jb = inLine.getJSONObject(0);
......}
}
但问题是,我实际上是从
转换了argsObject [] to JSONArray
所以Android警告我这只适用于API 19.我的问题是,无论如何我可以使用json来解析API 17~19支持的这个对象吗?
答案 0 :(得分:3)
JAVA中的每个类都直接或间接地继承自 Object 类。所以它可以投射到任何类。一小部分样本。你需要自己捕获像JsonException这样的异常:
String str = (String) args[0]; // your Object is variable argument so access it via index like array
JSONArray array = new JSONArray(str);
答案 1 :(得分:2)
我经常使用一个很棒的库来将我的数据模型类转换为JSON ..你可以只传递一个类,它将生成包含数组的Json:
<强> GSON 强>