JSONSerializer 呈现 Java 字符串数组
JSONSerializer to render a Java String Array
我有一个包含 5 个字符串的 Java 数组。我想使用 Flot Charts 绘制此数据,因此我想使用渲染(数组)将其从 Java 文件传输到需要 Java 脚本的 html 文件。我尝试了很多东西,有些用户建议我将它传递给 Java 文件中的 JSON 然后渲染它以便于 "digest" 到 Java 脚本.
我使用的方法之一是以下方法:
JSONSerializer TestSerializer = new JSONSerializer();
String test = TestSerializer.serialize(array);
render(test);
我试图将它存储在一个 String test[] 元素中(作为一个数组),但它将序列化的结果识别为一个唯一变量...但是,我稍后获得的结果在我完成渲染的 html 文件中分配到变量 ${test} 是以下一个:
["Hello","Bye","Hi"]
将字符串"Hello"、"Bye"和"Hi"这样放置,这绝对是垃圾,用Java脚本处理它是没有用的。此外,如果我输入 renderJSON(array) 而不是 render(array),所有 html 页面都会变成空白,但数组会完全按照我的意愿显示,但显然它是唯一显示的内容内容。
你们中有人知道如何 "transform" 它或者我可以做些什么来获得所需的 ["Hello", "Bye", "Hi"] 数组在 Java 脚本中?谢谢!
你的问题不是很清楚。
因此,如果我没理解错的话,您想要的是 key:value 之类的关系。
是的,你可以用 JSON 来完成,我也建议你使用 JSON.
简单的方法是使用一些库为您进行解析 (Java->JSON)。我推荐你Gson.
Gson 的一个简单示例,假设您有一个包含 4 个对象类型 Person 的列表。
public class Person {
private String name;
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
然后,您将每个人添加到列表中
Person john = new Person("John");
Person mark = new Person("Mark");
Person maria = new Person("Maria");
Person beth = new Person("Beth");
List<Person> personList = new ArrayList<>();
personList.add(john);
personList.add(mark);
personList.add(maria);
personList.add(beth);
解析来了,让我们用Gson吧。
Gson gson = new Gson();
String jsonString = gson.toJson(personList);
此时您已经有了包含 JSON 代码的字符串。因为我不确定您是否只想要 JSON 字符串或实际的 JSON 对象,如果您想要 JSON 对象,您可以执行以下操作:
JsonParser parser = new JsonParser();
JsonArray jsonArray = parser.parse(jsonString).getAsJsonArray();
它们都包含相同的信息,但一个在字符串中,另一个在 JSON 对象中。
为了确保,您可以这样做:
System.out.println("String: " + jsonString);
System.out.println("JSONArray.toString(): " + jsonArray.toString());
将打印:
String: [{"name":"John"},{"name":"Mark"},{"name":"Maria"},{"name":"Beth"}]
JSONArray.toString(): [{"name":"John"},{"name":"Mark"},{"name":"Maria"},{"name":"Beth"}]
PS;如果您想将密钥更改为其他内容,您只需在 Person class 上进行更改即可。假设您不希望密钥为 "name" 但 "firstName"。您只需转到 Person class 并将变量 name
更改为 firstName
PS2;对这样一个小例子使用解析库可能看起来有点矫枉过正,但是当你的 JSON 对象变得更复杂一点时,它会节省时间。
我有一个包含 5 个字符串的 Java 数组。我想使用 Flot Charts 绘制此数据,因此我想使用渲染(数组)将其从 Java 文件传输到需要 Java 脚本的 html 文件。我尝试了很多东西,有些用户建议我将它传递给 Java 文件中的 JSON 然后渲染它以便于 "digest" 到 Java 脚本.
我使用的方法之一是以下方法:
JSONSerializer TestSerializer = new JSONSerializer();
String test = TestSerializer.serialize(array);
render(test);
我试图将它存储在一个 String test[] 元素中(作为一个数组),但它将序列化的结果识别为一个唯一变量...但是,我稍后获得的结果在我完成渲染的 html 文件中分配到变量 ${test} 是以下一个:
["Hello","Bye","Hi"]
将字符串"Hello"、"Bye"和"Hi"这样放置,这绝对是垃圾,用Java脚本处理它是没有用的。此外,如果我输入 renderJSON(array) 而不是 render(array),所有 html 页面都会变成空白,但数组会完全按照我的意愿显示,但显然它是唯一显示的内容内容。
你们中有人知道如何 "transform" 它或者我可以做些什么来获得所需的 ["Hello", "Bye", "Hi"] 数组在 Java 脚本中?谢谢!
你的问题不是很清楚。 因此,如果我没理解错的话,您想要的是 key:value 之类的关系。 是的,你可以用 JSON 来完成,我也建议你使用 JSON.
简单的方法是使用一些库为您进行解析 (Java->JSON)。我推荐你Gson.
Gson 的一个简单示例,假设您有一个包含 4 个对象类型 Person 的列表。
public class Person {
private String name;
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
然后,您将每个人添加到列表中
Person john = new Person("John");
Person mark = new Person("Mark");
Person maria = new Person("Maria");
Person beth = new Person("Beth");
List<Person> personList = new ArrayList<>();
personList.add(john);
personList.add(mark);
personList.add(maria);
personList.add(beth);
解析来了,让我们用Gson吧。
Gson gson = new Gson();
String jsonString = gson.toJson(personList);
此时您已经有了包含 JSON 代码的字符串。因为我不确定您是否只想要 JSON 字符串或实际的 JSON 对象,如果您想要 JSON 对象,您可以执行以下操作:
JsonParser parser = new JsonParser();
JsonArray jsonArray = parser.parse(jsonString).getAsJsonArray();
它们都包含相同的信息,但一个在字符串中,另一个在 JSON 对象中。
为了确保,您可以这样做:
System.out.println("String: " + jsonString);
System.out.println("JSONArray.toString(): " + jsonArray.toString());
将打印:
String: [{"name":"John"},{"name":"Mark"},{"name":"Maria"},{"name":"Beth"}]
JSONArray.toString(): [{"name":"John"},{"name":"Mark"},{"name":"Maria"},{"name":"Beth"}]
PS;如果您想将密钥更改为其他内容,您只需在 Person class 上进行更改即可。假设您不希望密钥为 "name" 但 "firstName"。您只需转到 Person class 并将变量 name
更改为 firstName
PS2;对这样一个小例子使用解析库可能看起来有点矫枉过正,但是当你的 JSON 对象变得更复杂一点时,它会节省时间。