【问题标题】:Javascript deserialize arrayJavascript反序列化数组
【发布时间】:2011-11-08 20:36:35
【问题描述】:

我有一个这样的 JSON 数组

"---\n- table\n- kevin\n- table\n- kevin\n"

我如何将此数组反序列化为在 javascript 中有用的东西

【问题讨论】:

  • 这看起来不像是有效的 JSON
  • 如果要拆分字符串,请使用字符串对象的 .split 方法。要在换行符处拆分, var parts = yourString.split("\n");
  • 在我看来这不像 JSON。如果它是一个 JSON 数组,它看起来更像 ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]。见:json.org/fatfree.html
  • 这看起来也不像数组......
  • 他可能的意思是JSON数组的这个特定属性是一个数组,而不是整个JSON数组

标签: javascript json arrays


【解决方案1】:

就像@Todd 说的字符串不是一个有效的 json 对象但是你仍然可以像这样将它拆分成一个数组:

var s = "---\n- table\n- kevin\n- table\n- kevin\n";
var arr = s.split('\n-'); // arr should now contain ["---", " table", " kevin", " table", "kevin"]
console.log(arr);

附言而不是 '\n-' 你可以使用任何你想将字符串拆分成数组的分隔符(更多信息here

【讨论】:

    【解决方案2】:

    我猜你想要这个:

    var re = /\-\s(\w+)/g,
        arr = [],
        match;
    
    while ( match = re.exec( str ) ) {
        arr.push( match[1] );
    }
    

    str 是你的字符串。

    因此,arr 将变为 [ 'table', 'kevin', 'table', 'kevin' ]

    现场演示: http://jsfiddle.net/DdTqC/2/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-23
      • 1970-01-01
      • 2018-11-01
      • 2011-08-11
      • 1970-01-01
      • 2010-10-20
      相关资源
      最近更新 更多