我有一个包含5个字符串的Java数组。我希望使用Flot图表绘制这些数据,因此我希望使用呈现(数组)将其从Java文件传输到需要Javascript的html文件。我尝试了很多事情,一些用户建议我将它传递给Java文件中的JSON,然后将它呈现出来,使它更容易“消化”到Javascript。
我使用的方法之一是以下方法:
JSONSerializer TestSerializer = new JSONSerializer();
String test = TestSerializer.serialize(array);
render(test);我尝试将其存储在字符串test[]元素中(作为数组),但它将序列化的结果识别为唯一变量.但是,当稍后在我对其进行呈现的html文件中的变量${test}中赋值时,所获得的结果如下:
["Hello","Bye","Hi"]使用字符串"Hello“、"Bye”和"Hi“这样放置,这是绝对的垃圾,对于使用Javascript来处理它是没用的。此外,如果不是呈现(数组),而是输入renderJSON(数组),所有的html页面都为空,但是数组显示得非常完美,但很明显,它是内容中显示的唯一内容。
你们中有谁知道如何“转换”它,或者我怎样才能在Javascript中得到想要的"Hello“、"Bye”、"Hi“数组?谢谢!
发布于 2015-07-02 00:01:53
你的问题不太清楚。所以,如果我对你的理解是对的,你就会想要一个关键的东西:价值关系。是的,您可以使用JSON来完成这个任务,我还建议您使用JSON。
简单的方法是使用一些库为您进行解析(Java->JSON)。我推荐你葛森。
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"}]如果您想要更改其他东西的键,只需在Person类上更改它。让我们说,你不希望你的密钥是“名字”,而是"firstName“。您只需转到Person类并将变量name更改为firstName
PS2;在这样一个小示例中使用解析库可能看起来有点过火,但是当您的JSON对象变得更加复杂时,就会节省时间。
https://stackoverflow.com/questions/31172765
复制相似问题