我正在阅读一个巨大的数字文件,并且为了“效率”,将结果收集在一个看起来像二维数组而不是实际数组的字符串中。但是,我想生成 JSON,其中的值看起来像一个数组,而不是一个字符串。
作为一个高度简化的例子,如果对象是
var foo = {
realArray: [1,2,3,4,5],
fakeArray: '[1,2,3,4,5]' // String pretending to be an array
}
我希望两个字段的 JSON 输出相同,以便稍后解析生成的 json 的程序将“看到”一个数组,而不是字符串。
{
realArray: [1,2,3,4,5],
fakeArray: [1,2,3,4,5]
}
我的谷歌搜索和初步测试都失败了。 在这个问题中,他试图创建非法 JSON。他正在使用Java/GSON。我认为,我正在创建“合法”的 JSON。
作为测试,我尝试toJSON()
如下覆盖以删除前导“,但是当您调用 JSON.stringify(foo) 时,它会删除前导 [ 并保留引号!
foo.toJSON = function() {
return {
realArray: this.realArray,
fakeArray: this.fakeArray.substring(1)
};
};
产量
{
"realArray":[1,2,3,4,5],
"fakeArray":"1,2,3,4,5]" <<< removed the [, not the "
}
目前我可以以非常蛮力的方式做到这一点,将 foo 中每个字段的一堆较小的 JSON.stringify 连接成一个巨大的长字符串,但这很乏味,因为真正的 foo 对象有一堆对象。有没有更清洁的替代品?