【问题标题】:JS How can I convert a serialized object to an Array?JS 如何将序列化对象转换为数组?
【发布时间】:2018-10-05 07:35:40
【问题描述】:

使用jquery.nestable.min.js,我得到以下输出:

[{"id":32},{"id":29},{"id":30}]

当前输出来自以下代码:

const myList = JSON.stringify(list.nestable('serialize'));

我只需要它:

32, 29, 30

最终结果是我想在 PHP 中读取一个普通的数组。我希望将 myList 转换为 Javascript 中的数组并发布该数组,或者将对象的当前版本转换为 PHP 中的数组,以最有效的为准。

我尝试在 PHP 中使用 json_decode,但我得到了空值。所以我想如果我可以在将其发送到 PHP 之前将其转换为普通数组,那么就不会那么麻烦了。

谢谢。

这可能是重复的,在这种情况下,请指出最佳答案

【问题讨论】:

  • 我建议再试一次 PHP 中的 json_decode... 在尝试解码之前检查 PHP 接收到的值(您可以使用 print_r),并尝试找出它返回的原因空值。

标签: javascript php arrays json serialization


【解决方案1】:

取决于您是想要一个数组(根据您的标题),还是根据您的帖子字面意思是 32, 29, 30

console.log([{"id":32},{"id":29},{"id":30}].map(i => i.id))
console.log([{"id":32},{"id":29},{"id":30}].map(i => i.id).join(', '))

以你的例子来说,这可能是:

const myList = JSON.stringify(list.nestable('serialize').map(i => i.id));

【讨论】:

  • 谢谢,成功了。我能够从字面上复制粘贴并且它有效。我现在可以将 PHP 中的输出作为数组运行。
【解决方案2】:

如果您只想要一个数字数组,请将输出的对象数组转换为数字数组

var list = [{"id":32}, {"id":29}, {"id":30}];

var required = list.map(item => item.id);
console.log(required);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-07
    • 2022-08-08
    • 2017-04-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-19
    • 1970-01-01
    • 2020-07-18
    相关资源
    最近更新 更多