首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSONSerializer来呈现Java

JSONSerializer来呈现Java
EN

Stack Overflow用户
提问于 2015-07-01 22:30:50
回答 1查看 1.4K关注 0票数 1

我有一个包含5个字符串的Java数组。我希望使用Flot图表绘制这些数据,因此我希望使用呈现(数组)将其从Java文件传输到需要Javascript的html文件。我尝试了很多事情,一些用户建议我将它传递给Java文件中的JSON,然后将它呈现出来,使它更容易“消化”到Javascript。

我使用的方法之一是以下方法:

代码语言:javascript
复制
JSONSerializer TestSerializer = new JSONSerializer();
    String test = TestSerializer.serialize(array);
    render(test);

我尝试将其存储在字符串test[]元素中(作为数组),但它将序列化的结果识别为唯一变量.但是,当稍后在我对其进行呈现的html文件中的变量${test}中赋值时,所获得的结果如下:

代码语言:javascript
复制
["Hello","Bye","Hi"]

使用字符串"Hello“、"Bye”和"Hi“这样放置,这是绝对的垃圾,对于使用Javascript来处理它是没用的。此外,如果不是呈现(数组),而是输入renderJSON(数组),所有的html页面都为空,但是数组显示得非常完美,但很明显,它是内容中显示的唯一内容。

你们中有谁知道如何“转换”它,或者我怎样才能在Javascript中得到想要的"Hello“、"Bye”、"Hi“数组?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-02 00:01:53

你的问题不太清楚。所以,如果我对你的理解是对的,你就会想要一个关键的东西:价值关系。是的,您可以使用JSON来完成这个任务,我还建议您使用JSON。

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

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

代码语言:javascript
复制
public class Person {
    private String name;

    public Person(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}

然后,将每个人添加到列表中。

代码语言:javascript
复制
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。

代码语言:javascript
复制
Gson gson = new Gson();
String jsonString = gson.toJson(personList);

此时,您已经有了包含JSON代码的字符串。由于我不确定您只是想要JSON字符串还是实际的JSON对象,如果您想要JSON对象,可以执行以下操作:

代码语言:javascript
复制
JsonParser parser = new JsonParser();
JsonArray jsonArray = parser.parse(jsonString).getAsJsonArray();

它们都包含相同的信息,但一个在字符串中,另一个在JSON对象中。

为了确保,您可以:

代码语言:javascript
复制
System.out.println("String: " + jsonString);
System.out.println("JSONArray.toString(): " + jsonArray.toString());

它将打印:

代码语言:javascript
复制
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对象变得更加复杂时,就会节省时间。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31172765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档