我有一个带有初始数据的csv文件,用于我的应用程序。
{
"id": 1,
"topic": "Архитектура",
"question": "Как называется буддийское архитектурное культовое сооружение?",
"rightanswer": "Ступа",
"wronganswer1": "Баба",
"wronganswer2": "Яга",
"wronganswer3": "Метла",
"passed": false,
"right": false
},
我需要使用“答案”数组将其解析为json,我有哪些选择?
结果应该是这样的:
{
"id": 1,
"topic": "Архитектура",
"question": "Как называется буддийское архитектурное культовое сооружение?",
"answers":[
"Ступа",
"Баба",
"Яга",
"Метла" ],
"passed": false,
"right": false
}
答案 0 :(得分:2)
您的方向几乎是正确的,但是您必须使用JSONArray进行回答,而不是直接使用名称将其添加到对象中。
您可以使用if来检查键是否包含答案字符串,然后可以将其添加到JSONArray中,或者将该键和值添加到JSONObject中,并通过添加完成后将此JSONArray和键答案添加到主对象中所有字段。
这种逻辑将使您的逻辑保持灵活性。
它将帮助您实现所需的JSON。
编辑:如果可以的话,我建议您更改Excel结构。您应该在单个列中拥有所有可能的选项(例如opt1,opt2,opt3,opt4),并在另一列中更正答案,以便在excel设计代码中获得简单性和灵活性。
答案 1 :(得分:1)
我正在使用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
希望有帮助