JSON stringify仍然在JS中返回[object Object]

时间:2015-01-18 22:51:57

标签: java javascript jquery json

我对stringify有点问题。 我将变量从Java传递给JavaScript。 在out.println(strin)之后的Java中;它看起来像这样:

[{"date":"01-18-2015"},{"date":"01-19-2015"},{"date":"01-21-2015"},{"date":"01-19-2015"},{"date":"01-19-2015"},{"date":"01-19-2015"}]

所以我想把它传递给JavaScript

var obj = new String(<%= strin %>); 
var tekst = JSON.stringify(obj);
alert(tekst);

但是这个警报仍然给我[对象Objetc],[对象对象]等。 但是,如果我把这些日期直接放到这样的JS变量:

var zmienna = '[{"date":"01-18-2015"},{"date":"01-19-2015"},{"date":"01-21-2015"},{"date":"01-19-2015"},{"date":"01-19-2015"},{"date":"01-19-2015"}]';

stringify很好用。 我真的很困惑。谁能给我一些提示?

我在Java中使用json的代码如下所示:

String next_date = "";
        JSONArray json = new JSONArray();
        while (daty.next()) {
            next_date = formatter.format(daty.getDate("date"));
            JSONObject obj = new JSONObject();
            obj.put("date", next_date);
            json.put(obj);
        }

        String strin = json.toString();

1 个答案:

答案 0 :(得分:0)

您正在利用JSON表示法(JavaScript Object Notation)。

以这种方式声明变量时:

var zmienna = '[{"date":"01-18-2015"},{"date":"01-19-2015"},..];

你基本上宣称array[]的元素是objects{}

相当于以下代码。

var firstDate = new Date("01-18-2015");
var secondDate =new Date("01-19-2015");
var zmienna = [firstDate, secondDate];

这是准备使用数组,而在其他代码中,您声明了一个String变量,其中包含一些字符。

var obj = new String(<%= string %>); 

我希望它能澄清你的理解。