我有三個字符串。創建星號分隔字符串的JavaScript對象
var ids = "1*2*3";
var Name ="John*Brain*Andy";
var Code ="A12*B32*C38";
我想創建它的JavaScript對象。
我有三個字符串。創建星號分隔字符串的JavaScript對象
var ids = "1*2*3";
var Name ="John*Brain*Andy";
var Code ="A12*B32*C38";
我想創建它的JavaScript對象。
JSON對象只是一個字符串,所以這將是:
var json = '{"ids":"'+ids+'","Name":"'+Name+'","Code":"'+Code+'"}';
如果你想轉換成字符串數組中的字符串:
var json = '{"ids":["'+ids.replace(/\*/g,'","')+'"],"Name":["'+Name.replace(/\*/g,'","')+'"],"Code":["'+Code.replace(/\*/g,'","')+'"]}';
如果你是不是在所有looing的JSON ,但實際上是Javascript對象,它應該是:
var obj = {
ids: ids.split('*'),
Name: Name.split('*'),
Code: Code.split('*')
};
根據您的描述「我要第一個項目o F進行有三個道具的陣列,即編號,名稱和代碼值,分別爲約翰,A12「,然而這將是完全不同的:
var Ids = ids.split('*'), names = Name.split('*'), codes = Code.split('*');
var arr = [];
for (var i = 0; i < Ids.length; i++) {
arr.push({ Id: Ids[i], name: names[i], code: codes[i] });
}
如果你想,作爲JSON,這將是:
var Ids = ids.split('*'), names = Name.split('*'), codes = Code.split('*');
var items = [];
for (var i = 0; i < Ids.length; i++) {
items.push('{"Id":"'+Ids[i]+'","name":"'+names[i]+'","code":"'+codes[i]+'"}');
}
json = '[' + items.join(',') + ']';
(注:最後一個代碼只正常工作時的字符串不包含任何引號,否則他們必須把字符串時要逃脫。)
我發現Guffa給予好答案。我只想從手動JSON序列化中勸阻,因爲Name
屬性可能有一個必須轉義的特殊字符。因此,我建議Guffa的建議的最小變化,並使用JSON.stringify
(見http://www.json.org/js.html)
var Ids = ids.split('*'), names = Name.split('*'), codes = Code.split('*');
var arr = [];
for (var i = 0; i < Ids.length; i++) {
arr.push({ Id: Ids[i], Name: names[i], Code: codes[i] });
}
var result = JSON.stringify(arr);
+1謝謝奧列格。目前我不需要JSON。我將編輯該問題。當我需要JSON時,我會使用stringify。再次感謝 – IsmailS 2010-06-19 12:01:19
你的意思是:你希望那些星號隔開的字符串轉換成數組,把他們都在同一個對象?順便說一句,'JSON對象'不存在,JSON僅僅是一種符號,一種用純文本表示JavaScript對象的方式。 – 2010-06-19 11:21:10
正確的,我想要那樣。 – IsmailS 2010-06-19 11:21:58
你的用途是什麼?將數據選項傳遞給ajax調用? – 2010-06-19 11:23:19