【问题标题】:How to deal with json string in java servlet如何处理java servlet中的json字符串
【发布时间】:2015-10-24 23:15:46
【问题描述】:

在客户端生成一个名为 wrongAnswers 的变量,它是一个 javascript 对象数组。 它的形式是

wrongAnswers = [
     {"wrongAnswer": "Manzana", "wrongQuestion": "apple"},
     {"wrongAnswer": "arbol", "wrongQuestion": "tree"}
]

使用 JSON.stringify(wrongAnswers),然后使用表单将变量发送到 servlet。

一旦它在 servlet 中,我想将 JSON 转换为 Java Arraylist。 我有一个带有 2 个变量的类 Answer,errorAnswer 和 wrongQuestion。我想遍历 JSON 数组,并为每个对象创建一个 Answer 对象,该对象的值为 wrongAnswer 和 wrongQuestion。每次,将 Answer 对象添加到 ArrayList 中,所以最后,我有一个 ArrayList 的 Answers 对应于 JSON 中的所有值。

目前,我可以使用 request.getParameter("json") 获取带有 JSON 数据的字符串。但是,我不确定如何处理这个字符串。 有没有一种方法可以轻松地将保存 JSON 数据的字符串转换为 JsonArray 或 JsonObject,我可以轻松地对其进行迭代,获取名称的值:每个对象中的值对?

【问题讨论】:

  • 不要手动编写 servlet。使用 Spring MVC 或 Jersey,所有这些都会自动为您处理。
  • @chrylis 我认为使用 spring mvc 或 jersey 代替普通的旧 servlet api 不会更方便,因为 json 是通过请求参数而不是在请求正文中传递的。跨度>
  • 请看这个链接,它可能对stackoverflow.com/a/44389185/1404798有帮助

标签: java json servlets server


【解决方案1】:

一些示例代码会很不错,但是有很多方法可以解析和使用 JSON。

您可以尝试的一种方法是:

JSONArray json = new JSONArray(jsonString);

ArrayList<String> array = new ArrayList<String>();

for(int index = 0; index < json.length(); index++) {

    JSONObject jsonObject = json.getJSONObject(index);

    String str= jsonObject.getString("wrongAnswer");

    array.add(str);

}

【讨论】:

    【解决方案2】:

    尝试使用jackson解析json字符串:https://github.com/FasterXML/jackson

    例如,查找:How to parse a JSON string to an array using Jackson

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-07
      • 2013-12-22
      • 2013-11-25
      • 2014-12-14
      • 1970-01-01
      • 2012-01-27
      • 1970-01-01
      相关资源
      最近更新 更多