JavaScript将一些数据包装到json数组中
我想从这个字符串值创建jSon格式:JavaScript将一些数据包装到json数组中,javascript,arrays,json,Javascript,Arrays,Json,我想从这个字符串值创建jSon格式: hello|world|this|is|javascript || my|name|is|mahdi 在由此创建的jSon数组中,我不能通过使用|拆分将此字符串包装到分隔符作为2数组。我的代码工作正常,但在使用| |拆分字符串后,我无法在json中创建一些数组 结果我的代码是: { "FILEDS": [ { "template_id": "123", "fields_id": "45
hello|world|this|is|javascript || my|name|is|mahdi
在由此创建的jSon数组中,我不能通过使用|
拆分将此字符串包装到分隔符作为2数组。我的代码工作正常,但在使用| |
拆分字符串后,我无法在json中创建一些数组
结果我的代码是:
{
"FILEDS": [
{
"template_id": "123",
"fields_id": "456"
},
{
"item": "hello"
},
{
"item": "world"
},
{
"item": "this"
},
{
"item": "is"
},
{
"item": "javascript "
},
{
"item": " my"
},
{
"item": "name"
},
{
"item": "is"
},
{
"item": "mahdi"
}
]
}
但我希望得到如下json格式的结果:
{
"FILEDS": [
{
"template_id": "123",
"fields_id": "456"
},
[
{
"item": "hello"
},
{
"item": "world"
},
{
"item": "this"
},
{
"item": "is"
},
{
"item": "javascript "
}
],
[
{
"item": " my"
},
{
"item": "name"
},
{
"item": "is"
},
{
"item": "mahdi"
}
]
]
}
我的代码在代码下面,如何在每个中为
创建此数组,以便创建一些数据并将其包装到[]
<script type="text/javascript" language="JavaScript">
var data = "hello|world|this|is|javascript || my|name|is|mahdi";
var templates = {
FILEDS: []
};
templates.FILEDS.push({
"template_id": "123",
"fields_id": "456",
});
var split_data = data.split("||");
for (var i = 0; i < split_data.length; i++) {
var fields = split_data[i].split("|");
for (var j = 0; j < fields.length; j++) {
templates.FILEDS.push({
"item": fields[j],
});
}
}
console.log(JSON.stringify(templates));
</script>
var data=“hello | world | this | is | javascript | | my | name | is | mahdi”;
变量模板={
文件:[]
};
templates.FILEDS.push({
“模板id”:“123”,
“字段id”:“456”,
});
var split_data=data.split(“| |”);
对于(变量i=0;i
试试这个
var split_data = data.split("||");
for (var i = 0; i < split_data.length; i++) {
var sentence = [];
var fields = split_data[i].split("|");
for (var j = 0; j < fields.length; j++) {
sentence.push({
"item": fields[j],
});
}
templates.FILEDS.push(sentence)
}
var split_data=data.split(“| |”);
对于(变量i=0;i
试试这个
var split_data = data.split("||");
for (var i = 0; i < split_data.length; i++) {
var sentence = [];
var fields = split_data[i].split("|");
for (var j = 0; j < fields.length; j++) {
sentence.push({
"item": fields[j],
});
}
templates.FILEDS.push(sentence)
}
var split_data=data.split(“| |”);
对于(变量i=0;i
您需要一个辅助阵列来保存数据
var data = "hello|world|this|is|javascript || my|name|is|mahdi";
var templates = {
FILEDS: []
};
templates.FILEDS.push({
"template_id": "123",
"fields_id": "456",
});
var split_data = data.split("||");
for (var i = 0; i < split_data.length; i++) {
var fields = split_data[i].split("|");
var arr = [];
for (var j = 0; j < fields.length; j++) {
arr.push({ "item" : fields[j] });
}
templates.FILEDS.push(arr);
}
console.log(JSON.stringify(templates));
// result" {"FILEDS":[{"template_id":"123","fields_id":"456"},[{"item":"hello"},{"item":"world"},{"item":"this"},{"item":"is"},{"item":"javascript "}],[{"item":" my"},{"item":"name"},{"item":"is"},{"item":"mahdi"}]]}
var data=“hello | world | this | is | javascript | | my | name | is | mahdi”;
变量模板={
文件:[]
};
templates.FILEDS.push({
“模板id”:“123”,
“字段id”:“456”,
});
var split_data=data.split(“| |”);
对于(变量i=0;i
您需要一个辅助阵列来保存数据
var data = "hello|world|this|is|javascript || my|name|is|mahdi";
var templates = {
FILEDS: []
};
templates.FILEDS.push({
"template_id": "123",
"fields_id": "456",
});
var split_data = data.split("||");
for (var i = 0; i < split_data.length; i++) {
var fields = split_data[i].split("|");
var arr = [];
for (var j = 0; j < fields.length; j++) {
arr.push({ "item" : fields[j] });
}
templates.FILEDS.push(arr);
}
console.log(JSON.stringify(templates));
// result" {"FILEDS":[{"template_id":"123","fields_id":"456"},[{"item":"hello"},{"item":"world"},{"item":"this"},{"item":"is"},{"item":"javascript "}],[{"item":" my"},{"item":"name"},{"item":"is"},{"item":"mahdi"}]]}
var data=“hello | world | this | is | javascript | | my | name | is | mahdi”;
变量模板={
文件:[]
};
templates.FILEDS.push({
“模板id”:“123”,
“字段id”:“456”,
});
var split_data=data.split(“| |”);
对于(变量i=0;i
另一个带有
如果您想要像这样的对象,请更新
{ "FILEDS": [
{ "template_id": "123", "fields_id": "456" },
{"items": [
[ "hello", "world", "this", "is", "javascript " ],
[ " my", "name", "is", "mahdi" ]
] }
]}
您可以稍微更改上面的代码
templates.FILEDS.push({
"item" : data.split("||").map(function(el){
return el.split('|');
})
}
);
另一个变种是
如果您想要像这样的对象,请更新
{ "FILEDS": [
{ "template_id": "123", "fields_id": "456" },
{"items": [
[ "hello", "world", "this", "is", "javascript " ],
[ " my", "name", "is", "mahdi" ]
] }
]}
您可以稍微更改上面的代码
templates.FILEDS.push({
"item" : data.split("||").map(function(el){
return el.split('|');
})
}
);
@mahdipishguy,请注意,其他答案也一样,并且在大型阵列上更有效(更快),因为在大多数情况下,simple
for
比map
使用Array.prototype.push.apply而不是[].push更快。apply@Sagi,你能解释一下原因吗?;-)Array.prototype.push==[].push//true
对我来说更优雅,因为你不需要创建数组实例就可以使用push函数。@Grundy如何为嵌套数组分配键?像这样:{“FILEDS”:[{“template_id”:“123”,“fields_id”:“456”},“items”:[“hello”,“world”,“this”,“is”,“javascript”],[“my”,“name”,“is”,“mahdi”]]}
@mahdipishguy,请注意,其他答案也一样,并且在大型阵列上更有效(更快),因为在大多数情况下,simplefor
比map
使用Array.prototype.push.apply而不是[].push更快。apply@Sagi,你能解释一下原因吗?;-)Array.prototype.push==[].push//true
对我来说更优雅,因为你不需要创建数组实例就可以使用push函数。@Grundy如何为嵌套数组分配键?像这样:{“FILEDS”:[{“template_id”:“123”,“fields_id”:“456”},“items”:[“hello”,“world”,“this”,“is”,“javascript”],[“my”,“name”,“is”,“mahdi”]]}