Java Can';t将字符串转换为JsonArray

Java Can';t将字符串转换为JsonArray,java,arrays,json,string,gson,Java,Arrays,Json,String,Gson,如何将此字符串转换为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]]"; 这是我的代码: c

如何将此字符串转换为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);
    }

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

我看不出有什么问题。这段代码对我来说运行良好:

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字符串文字中的双引号。

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

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()方法中代码的一个小修改

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

import com.google.gson.*;

以上答案不推荐。我们必须调用静态方法。这是工作代码

JsonArray outputJsonArray = JsonParser.parseString(pasteYourStringHere).getAsJsonArray();

com.google.gson.JsonArray;库我在这里使用的这个(gson)打字错误被误认为是问题中的导入。实际上是在源代码中添加的..感谢有可能拆分JsonArray吗?你的意思是获得JsonArray“trade”的第一个元素([\“110917\”,3.00999999999999998,-0.729999999999999998,2.850000000000001,2.96685.0,38603.0])?尝试使用“trade.get(0)”。我可以知道为什么这里我们需要在字符串前面添加/(反斜杠)吗?我只希望第一个列表作为json数组?可以通过吗?斜杠是为了转义“字符。如果你不这样做,编译器就不会知道你不打算结束字符串,例如用一个结束符”。例如,可以使用elemArr.get(index)返回数组的第一个元素。
JsonArray outputJsonArray = JsonParser.parseString(pasteYourStringHere).getAsJsonArray();