2012-01-27 97 views
0

你好,我想要一个没有2引号的json对象,当前输出无效。 我如何做到这一点?Javascript JSON不好输出需要其他

我想正是这一点:

{"format":{"id":"ivf","author":"","title":"","copyright":"","comment":"","album":"","year":"","track":"","genre":""}} 

这是坏输出不是有效的JSON:

{"format":"{"id":"ivf","author":"","title":"","copyright":"","comment":"","album":"","year":"","track":"","genre":""}"} 

video_format_serialized数据:

{"id":"ivf","author":"","title":"","copyright":"","comment":"","album":"","year":"","track":"","genre":""} 

video_format_serialized = JSON.stringify($('#addprofile_FORM_video_format').serializeObject()); 
alert(video_format_serialized); 
var format_object = { 
    format:video_format_serialized 
}; 
console.log(format_object); 
var string = JSON.stringify(format_object); 
tring.substring(1); 
string.substring(0, string.length-1); 
console.log(string); 
string = string.replace(/\\/g, ""); 
console.log(string); 

UPDATE 这里是正确的代码来生成有效的输出。

var format_object = { 
    format:$('#addprofile_FORM_video_format').serializeObject() 
}; 
console.log(format_object); 
var string = JSON.stringify(format_object); 
string.substring(1); 
string.substring(0, string.length-1); 
console.log(string); 
string = string.replace(/\\/g, ""); 
console.log(string); 
+0

林不知道问题是什么...你需要将第二个转换为第一个? – hvgotcodes 2012-01-27 14:00:06

+0

第二个错误的输出json对象,你会发现需要删除2个双引号,但JSON.stringify在输出上什么也不做。 – 2012-01-27 14:02:44

回答

1

你应该对象文本上使用JSON.stringify(不是在一根绳子上,这是我认为你正在做的)来创建JSON - 你知道这将是有效的方式。举例来说,如果你有

var toConvert = {format: {id: "ivf", "author": ""}};

,你键入

JSON.stringify(toConvert);

你会得到

"{"format":{"id":"ivf","author":""}}"

+0

我需要不需要第一个报价和结束报价 – 2012-01-27 14:03:17

+0

我的观点是如果你在对象字面上使用'stringify' ,您不必担心... – hvgotcodes 2012-01-27 14:04:24

+0

请注意,在IE7中不支持没有垫片的情况下, – 2012-01-27 15:49:29