如何在Android中将Object []转换为JSONArray?

时间:2014-07-24 15:06:58

标签: android arrays json

在我的应用程序中,我从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);
        ......}
    }

但问题是,我实际上是从

转换了args
Object [] to JSONArray

所以Android警告我这只适用于API 19.我的问题是,无论如何我可以使用json来解析API 17~19支持的这个对象吗?

2 个答案:

答案 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

https://code.google.com/p/google-gson/downloads/list