我知道不保证以任何特定顺序存储或读取对象的属性。
我遇到的问题是我不能使用对象或数组。我已经有一个像这样的大而且非常嵌套的JSON文件:
{ "occasion": 23, "mayorstips": { "1": 0, "3": 0, "2": 0...
我只需做一些修改。这就是我开始使用它的方式:
var campaign = JSON.parse(fs.readFileSync(theJSONFile));
for(var plot in plots) {
if(plots.hasOwnProperty(plot)) {
switch(plots[plot].province) {
case 'forest':
...
当我完成时,我只是把它放回去:
fs.writeFileSync(theJSONFile, JSON.stringify(campaign));
现在,我注意到这种方法存在两个问题:
JSON
库的任何格式化尝试都没有用。我用一些正则表达式替换来解决它。{ "1": 0, "3": 0, "2": 0
转到{ "1": 0, "2": 0, "3": 0
,结果证明这是个大问题。这是一个35,000个字符行。这是我如何解决问题#2和#3?我可以做另一个正则表达式取代#3但也许有一些我缺少的东西。
答案 0 :(得分:1)
查看问题和评论,它是字符串操作。 我不知道你想对数据做什么,但是,如果json使你的数据处理变得容易,你可以将两者结合起来。
{ "1": 0, "3": 0, "2": 0...
中的1,3,2的顺序存储在一个数组中,同时在你需要维护0的数字周围添加引号。 / LI>
User.where(instance_eval("{#{string}}"))
)另请看这个问题
IllegalArgumentException
希望有所帮助。一切顺利!