繁体   English   中英

使用列表从Json String获取数据 <t> 在Android中

[英]Get Data from Json String using List<t> in android

我正在使用List<t>从Json String获取数据。

我能够获取Question和QId的数据,但Options是json字符串中的json字符串。 因此,我对如何获取这些数据感到困惑。

我的示例代码获取数据:

Test[] placelist = gson.fromJson(result, Test[].class);
List<Test> lList = Arrays.asList(placelist);
Test obj = lList.get(i);
obj.getQuestion();

测试是Java类文件,其中包含获取和设置数据的方法。

我的Json字串:

 [
    {
        "Question": "Are you inclined to",
        "QId": "2",
        "Options": [
            {
                "Option": "Argue or debate issues",
                "OptionId": "4"
            },
            {
                "Option": "Avoid arguments",
                "OptionId": "5"
            },
            {
                "Option": "Swutch topics",
                "OptionId": "6"
            }
        ]
    },
    {
        "Question": "Are you more likely to trust",
        "QId": "3",
        "Options": [
            {
                "Option": "Yourself",
                "OptionId": "7"
            },
            {
                "Option": "Reason",
                "OptionId": "8"
            },
            {
                "Option": "Feeling",
                "OptionId": "9"
            }
        ]
    },
    {
        "Question": "Would you say that you",
        "QId": "4",
        "Options": [
            {
                "Option": "Make decisions easily",
                "OptionId": "10"
            },
            {
                "Option": "Find difficulties to make decision",
                "OptionId": "11"
            },
            {
                "Option": "Wait for some conclusions",
                "OptionId": "12"
            }
        ]
    }
]

测试类别:

public class Test{

    private String Question;
    private String Option;

    public Test(String Question, String Option) {
        this.Question= Question;
        this.Option= Option;
    }

    public void setQuestion(String Question) {
        this.Test= Question;
    }

    public void setOption(String Option) {
        this.Option= Option;
    }

    public String getQuestion() {
        return this.Question;
    }

    public String getOption() {
        return this.Option;
    }
}

我不确定使用什么代替setOption()getOption()来获取选项。
请帮助我获得期权的数据。

您的Test类有两个立即显而易见的问题:

  1. JSON中的“选项”是“选项”,您需要对此进行重命名或注释。
  2. 选项是Test类中的String类型,但实际上是JSON数据中的数组。 您将需要创建Option类并将Test类中的类型更改为List <Option>。

您可以使用gson来获取数据。 脚步:

1. Create the test class such that it has question,id as string 
and Option as a list of options, and Test is going to be a list of Test
2. Use @SerializedValue in order to map the fields correctly.
3. Refer to :

是关于如何使用gson的想法

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM