Java-需要关于JSON数组/对象和验证的帮助吗

Java-需要关于JSON数组/对象和验证的帮助吗,java,arrays,json,validation,Java,Arrays,Json,Validation,我有一个学校的任务,我必须向服务器进行身份验证。一旦通过身份验证,我就无法确定它是否是正确的单词一些JSON数据,使用: List <NameValuePair> nvp = new ArrayList <NameValuePair>(); nvp.add(new BasicNameValuePair("username", "test")); //used to log in to the site nvp.add(new BasicNameValuePair("pa

我有一个学校的任务,我必须向服务器进行身份验证。一旦通过身份验证,我就无法确定它是否是正确的单词一些JSON数据,使用:

List <NameValuePair> nvp = new ArrayList <NameValuePair>();

nvp.add(new BasicNameValuePair("username", "test")); //used to log in to the site
nvp.add(new BasicNameValuePair("password", "test")); 
nvp.add(new BasicNameValuePair("request", "login"));
nvp.add(new BasicNameValuePair("request", "mctrainer"));
post.setEntity(new UrlEncodedFormEntity(nvp));
我使用该代码收集的数据是:

[{correctanswerPK:155,挑战:Hva er reaal,回答:En klasse,choices:[Heltallstype,En klasse,Konstruktør]},{correctanswerPK:149,挑战:Hva brukes ordet private til,回答:Innkapsling,choices:[Innkapsling,En klasse,Heltallstype]},{correctanswerPK:161-er-double,回答:flytallstype,choices:[Exception,flytallstype,En metode]]

这是挪威的数据,但仍然是JSON

我目前正在通过运行System.out.println来“显示”这些数据,这意味着它会出现在控制台中。但是,任务是使其显示在JFrame中。我的理解是,我需要使用JSONArray和JSONObject才能做到这一点,再加上JSONvalidator或类似的东西

问题是我不知道怎么做。有没有可能有人能帮我


我的老师告诉我们这是一个很好的图书馆,但我不知道如何使用它。还有其他想法吗

我假设您希望将JSON文本拆分为单独的对象以显示在UI中,因为您可以只显示文本,但我猜这不是您的任务重点

我不建议使用一个没有为您所需要的中心目标而构建的库。不是要怀疑你的教授,但他向你推荐的库是为了检索Twitter数据而设计的,不是为了解析JSON,这可能是它的主要目标的副作用,但这仍然不是它的主要重点。我推荐任何其他优秀的JSON库,所有这些库都能够进行JSON验证并转换为POJO普通旧java对象。这里有一个很好的列表让你开始

集成到您的项目中并使用起来非常简单——实际上,您下载并直接包含在代码中的类不到10个。格森可能是第二个最容易使用的,其次是杰克逊,他是三人中的重量级,但也是最强大的。下面我展示了一个使用列表中最简单的库进行处理的示例。它采用以下形式的JSON:

[
    {"firstName" : "Bob", "lastName" : "Jones"},
    {"firstName" : "Susan", "lastName" : "Smith"},
    {"firstName" : "Melody", "lastName" : "Dumond"}
]
这是一个类似于数据的JSON数组

final JSONArray jsonArr = new JSONArray(json);
final int numObjs = jsonArr.length();
for(int i = 0 ; i < numObjs; i++) {
    final JSONObject jsonObj = jsonArr.getJSONObject(i);
    System.out.printf("Person's name is %s, %s\n", jsonObj.get("lastName"),
        jsonObj.get("firstName");
}

您可以将此示例扩展到您自己的项目中,或者研究并合并其他有用的库。

您可以查看此帖子。。。谢谢你的快速回答。这种方法的问题是,我收集的服务器是一个随机数生成器,它每次发送不同的数据,因此硬编码将要显示的内容不起作用。除非我遗漏了什么。