Java 如何使用数组将csv转换为json

Java 如何使用数组将csv转换为json,java,android,arrays,json,csv,Java,Android,Arrays,Json,Csv,我有一个csv文件,其中包含我的应用程序的初始数据 我需要用“答案”数组将其解析为json,我有哪些选项 结果应该是这样的: { "id": 1, "topic": "Архитектура", "question": "Как называется буддийское архитектурное культовое сооружение?", "answers":[ "Ступа", "Баба", "Яга",

我有一个csv文件,其中包含我的应用程序的初始数据

我需要用“答案”数组将其解析为json,我有哪些选项

结果应该是这样的:

 {
   "id": 1,
   "topic": "Архитектура",
   "question": "Как называется буддийское архитектурное культовое сооружение?",
   "answers":[
        "Ступа",
        "Баба",
        "Яга",
        "Метла" ],
   "passed": false,
   "right": false
 }

您的方向几乎是正确的,但是您必须使用JSONArray来获得答案,而不是将它们直接添加到具有名称的对象中

您可以有一个if,在这里您将检查key是否包含应答字符串,然后您可以添加到JSONArray中,或者将该key和值添加到JSONObject中,并在添加完all字段后将该JSONArray和key answers一起添加到主对象中

这种逻辑将使您的逻辑保持灵活

它将帮助你实现你的愿望

编辑:如果可以,我建议您更改excel结构。您应该在一列中包含所有可能的选项(如opt1、opt2、opt3、opt4),并在另一列中更正答案,以便在excel设计和代码中获得简单性和灵活性

我正在使用

希望能有帮助

 {
   "id": 1,
   "topic": "Архитектура",
   "question": "Как называется буддийское архитектурное культовое сооружение?",
   "answers":[
        "Ступа",
        "Баба",
        "Яга",
        "Метла" ],
   "passed": false,
   "right": false
 }
    String str = "{\r\n" + 
            "   \"id\": 1,\r\n" + 
            "   \"topic\": \"Архитектура\",\r\n" + 
            "   \"question\": \"Как называется буддийское архитектурное культовое сооружение?\",\r\n" + 
            "   \"rightanswer\": \"Ступа\",\r\n" + 
            "   \"wronganswer1\": \"Баба\",\r\n" + 
            "   \"wronganswer2\": \"Яга\",\r\n" + 
            "   \"wronganswer3\": \"Метла\",\r\n" + 
            "   \"passed\": false,\r\n" + 
            "   \"right\": false\r\n" + 
            " }"; //<== your json input

    JsonParser parser = new JsonParser();
    JsonObject input = parser.parse(str).getAsJsonObject(); //parser you Json to object
    JsonObject output =  new JsonObject();//my new jsonOutput
    output.add("id", input.get("id"));
    //other field .....

    //the trick start here
    JsonArray answer = new JsonArray();
    answer.add(input.get("rightanswer"));
    answer.add(input.get("wronganswer1"));
    answer.add(input.get("wronganswer2"));
    answer.add(input.get("wronganswer3"));
    output.add("answers", answer);

    System.out.println(output.toString());
{"id":1,"answers":["Ступа","Баба","Яга","Метла"]} // to lazy to parse other field sorry