JSONSerializer来呈现Java字符串数组

JSONSerializer to render a Java String Array

本文关键字:字符串 数组 Java JSONSerializer      更新时间:2023-09-26

我有一个包含5个字符串的Java数组。我想使用Flot Charts绘制这些数据,因此我想使用render(数组)将其从Java文件传输到需要Javascript的html文件。我已经尝试了很多方法,一些用户建议我将其传递给Java文件中的JSON,然后将其渲染,以使其易于"消化"为Javascript。

我使用过的方法之一如下:

JSONSerializer TestSerializer = new JSONSerializer();
    String test = TestSerializer.serialize(array);
    render(test);

我曾尝试将其存储在Stringtest[]元素中(作为数组),但它将序列化的结果识别为唯一变量。。。然而,当我稍后将渲染到html文件中的变量${test}中时,我获得的结果如下:

["Hello","Bye","Hi"]

字符串"Hello"、"Bye"answers"Hi"这样放置,这绝对是垃圾,用Javascript处理它毫无用处。此外,如果不是render(array),而是我键入renderJSON(array。

你们中有人知道如何"转换"它吗?或者我该怎么做才能在Javascript中获得所需的["Hello"、"Bye"、"Hi"]数组?谢谢

您的问题不是很清楚。所以,如果我理解得对的话,你想要一个类似钥匙的东西:价值关系。是的,您可以使用JSON来实现,我还建议您使用JSON。

简单的方法是使用一些库来为您进行解析(Java->JSON)。我推荐你Gson。

Gson的一个简单例子是,假设您有一个类型为Person的4个对象的列表。

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();

它们都持有相同的信息,但一个在String中,另一个在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类上进行更改即可。比方说,你不希望你的键是"名称",而是"第一名称"。您只需转到Person类并将变量name更改为firstName

PS2;对于这样一个小示例,使用解析库可能看起来有些过头了,但当JSON对象变得稍微复杂一点时,它可以节省时间。