Javascript JSON.Stringify()什么是undefined

时间:2017-07-05 07:46:55

标签: javascript json

我在javascript中使用JSON.Stringify()...

var jsonProp;
var json = { };
json.prop= { };
json.prop.Brand = $('.Brand' + val).val();
json.prop.Name = $('.Name' + val).val();
json.prop.Desc = $('.Desc' + val).val();
json.prop.Address = $('.Address' + val).val();
json.prop.Phone = $('.Phone' + val).val();
json.prop.Tag = $('.Tag' + val).val();
json.prop.City = $('.City' + val).val();
json.prop.Status = $('.Status' + val).val();
jsonProp = jsonProp + JSON.stringify(json);

结果是:

"undefined{"prop":{"Brand":"","Name":"apotik AA","Desc":"","Address":"Address","Phone":"","Tag":"","City":"BEKASI","Status":"0"}}
{"prop":{"Brand":"","Name":"apotik AAaaaa. Bina Farma","Desc":"","Address":"Jl. RA. Kartini, Margahayu-Bekasi Tim., Kota Bks, Jawa Barat 17113","Phone":"","Tag":"","City":"BEKASI","Status":"0"}}"

为什么“未定义”?我怎么设置它?我想要的就是像这样的JSONArray:

Prop{{"Brand":"value","Name":"value"},{"Brand":"value","Name":"value"}}

请帮忙

4 个答案:

答案 0 :(得分:2)

因为您声明了jsonProp但未对其进行定义:var jsonProp;。如果您没有为变量设置值,则该值为undefined

答案 1 :(得分:1)

声明没有任何未分配值的变量时:

var jsonProp; // default value set to undefined by javascript.

没有任何作业。 javascript的作用是,它为undefined分配一个默认值。这就是它的工作原理。所以,当你连接它时:

jsonProp = jsonProp + JSON.stringify(json);
//         undefined + "{prop:{}}"

这种情况发生了。

答案 2 :(得分:0)

您的变量jsonBiz尚未定义。

所以当你这样做时

jsonBiz = jsonBiz + JSON.stringify(json)

添加未定义的值和字符串。第一个值变为字符串“undefined”,并添加了两个。

答案 3 :(得分:0)

您需要在使用之前定义jsonBiz。

var jsonBiz = "";

jsonBiz = jsonBiz + JSON.stringify(json);

请试试这个。