如何将JSONArray转换为JsArray?

时间:2017-06-07 09:49:56

标签: javascript gwt

我的JsonArray看起来像这样:

  JSONArray itemsJsonArray = new JSONArray();  
  JSONObject jsobj = new JSONObject();


 jsobj.put("a", new JSONString("hi")); 
 jsobj.put("b", new JSONString("hgjjh")); 
 jsobj.put("c", new JSONNumber(149077));


 itemsJsonArray.set(0, jsobj);

我需要等效数据作为JsArray(包:com.google.gwt.core.client),因为我需要使用的api只接受JsArray。
我需要转换为特定的JsArray而不是任何JsonObject,并且无法承担序列化数据的开销。

上述数据的等效JsArray的结构是什么,结构为key:value?

2 个答案:

答案 0 :(得分:1)

根据您的评论编辑回答:

在查看你提到的package的Javadoc后,可以试试这个:

JsArrayMixed jsArray = new JsArrayMixed();
for (int i = 0; i < jsonArray.length(); ++i){ 
   jsArray.push(jsonArray.get(i));
}

请记住,您需要在jsonArrayJavaScriptObject中解析对象。

答案 1 :(得分:1)

这段代码对我有用。

        JSONArray itemsJsonArray = new JSONArray();  
        JSONObject jsobj = new JSONObject();

        jsobj.put("author", new JSONString("hin")); 
        jsobj.put("text", new JSONString("hgg")); 
        jsobj.put("created", new JSONString("123"));

        itemsJsonArray.set(0, jsobj);

        JavaScriptObject msg =itemsJsonArray.getJavaScriptObject();
        JsArray<?> ob=(JsArray<?>) msg ;

感谢您的帮助。