[英]How to convert csv to json with arrays
我有一个csv文件,其中包含我的应用程序的初始数据。
{
"id": 1,
"topic": "Архитектура",
"question": "Как называется буддийское архитектурное культовое сооружение?",
"rightanswer": "Ступа",
"wronganswer1": "Баба",
"wronganswer2": "Яга",
"wronganswer3": "Метла",
"passed": false,
"right": false
},
我需要用“答案”数组解析它给json,我有什么选择?
结果应该是这样的:
{
"id": 1,
"topic": "Архитектура",
"question": "Как называется буддийское архитектурное культовое сооружение?",
"answers":[
"Ступа",
"Баба",
"Яга",
"Метла" ],
"passed": false,
"right": false
}
您几乎是在正确的方向,但您必须使用JSONArray作为答案,而不是直接将它们添加到具有名称的对象中。
您可以在其中检查密钥是否包含答案字符串,然后您可以添加到JSONArray中,然后将该密钥和值添加到JSONObject中,并在完成后通过添加所有字段将带有密钥答案的JSONArray添加到主对象中。
这种逻辑将保持您的逻辑灵活性。
它将帮助您实现您的JSON愿望。
编辑:如果可以,我建议你改变你的excel结构。 您应该在单个列中拥有所有可能的选项(例如opt1,opt2,opt3,opt4),并在另一列中获得正确的答案,以便在excel设计和代码中获得简单性和灵活性。
我正在使用gson
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
希望能帮助到你
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.