无法将字符串转换为JsonArray

时间:2011-06-23 13:32:06

标签: java arrays json string gson

如何将此String转换为gson.JsonArray?

String s= "[["110917    ", 3.0099999999999998, -0.72999999999999998, 2.8500000000000001, 2.96, 685.0, 38603.0], ["110917    ", 2.71, 0.20999999999999999, 2.8199999999999998, 2.8999999999999999, 2987.0, 33762.0]]";

这是我的代码:

 com.google.gson.*;
 public static void main(String[] args)
   {
       //Declared S here
       System.out.println("String to Json Array Stmt");
       JsonParser parser = new JsonParser();
       JsonElement tradeElement = parser.parse(s.toString());
       JsonArray trade = tradeElement.getAsJsonArray();
       System.out.println(trade);
    }

这是将此Collections字符串转换为JSonArray的方法吗?

3 个答案:

答案 0 :(得分:40)

要在JSON数组中包含字符串值,必须记住在Java程序中使用反斜杠转义双引号。见下面的声明。

String s = "[[\"110917       \", 3.0099999999999998, -0.72999999999999998, 2.8500000000000001, 2.96, 685.0, 38603.0], [\"110917    \", 2.71, 0.20999999999999999, 2.8199999999999998, 2.8999999999999999, 2987.0, 33762.0]]";

main()方法中的代码运行正常。下面只是对main()方法中代码的一个小修改。

System.out.println("String to Json Array Stmt");
JsonParser parser = new JsonParser();
JsonElement tradeElement = parser.parse(s);
JsonArray trade = tradeElement.getAsJsonArray();
System.out.println(trade);

最后,请记住在语句“com.google.gson。*”前加上关键字“import”,如下所示。

import com.google.gson.*;

答案 1 :(得分:6)

我没有看到问题。这段代码对我来说运行良好:

import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonParser;


public class GsonExample {
    public static void main(String[] args) {
        String s= "[[\"110917\", 3.0099999999999998, -0.72999999999999998," +
                "2.8500000000000001, 2.96, 685.0, 38603.0], [\"110917\", 2.71," +
                "0.20999999999999999, 2.8199999999999998, 2.8999999999999999," +
                "2987.0, 33762.0]]";


        JsonParser  parser = new JsonParser();
        JsonElement elem   = parser.parse( s );

        JsonArray elemArr = elem.getAsJsonArray();
        System.out.println( elemArr );
    }
}

唯一的问题可能是您未能正确转义s字符串文字中的双引号。

答案 2 :(得分:0)

不建议使用以上答案。这是工作代码。

  val outputJsonArray = JsonParser.parseString(pasteYourStringHere).asJsonArray

这是已弃用的消息。我们必须调用静态方法。

enter image description here