Javascript 用于循环通过JSON格式的字符串与JSON.parse

Javascript 用于循环通过JSON格式的字符串与JSON.parse,javascript,json,node.js,Javascript,Json,Node.js,我有一个有效的JSON字符串存储在一个cassandra列中,大约1MB,但可能增长到(最坏的情况)50MB,任何时候都可以被1000多人检索到。 检索字符串时,在节点中执行任何操作之前,将调用JSON.parse将字符串转换为JSON对象 大多数时候,操作是拉出一个键:value 首先必须将“整个”字符串转换为对象,只提取一个key:value,这似乎效率低下,因此我认为最好只对字符串进行for循环,直到找到所需的键 然而,这带来了挑战,例如嵌套对象、转义字符等 1) 是否有一个简单的JSON

我有一个有效的JSON字符串存储在一个cassandra列中,大约1MB,但可能增长到(最坏的情况)50MB,任何时候都可以被1000多人检索到。 检索字符串时,在节点中执行任何操作之前,将调用JSON.parse将字符串转换为JSON对象

大多数时候,操作是拉出一个键:value

首先必须将“整个”字符串转换为对象,只提取一个key:value,这似乎效率低下,因此我认为最好只对字符串进行for循环,直到找到所需的键

然而,这带来了挑战,例如嵌套对象、转义字符等

1) 是否有一个简单的JSON字符串解析器可以遍历 JSON字符串

2) 另一种方法是将JSON对象存储在 memcache,它确实意味着重复数据(cassandra和memcache),但是 不同的格式(分别是字符串和对象),这是否更多 效率还是有点高

3) 我看到了,但是作者在测试 显示JSON.parse在一个大文件上的性能仍然优于单簧管

4) 还有其他想法吗


物体需要那么大吗?也许一些数据可以存储在相关记录中,这样就不会太重了。数据会随着用户添加更多消息而增长,所以可能在一段时间后会变得那么大,除非如您所述,我可以将数据拆分为“字符串块”,并将其存储在多个cassandra列中……这可能会起作用,我必须决定“chunk”的大小,搜索操作需要将每个chunk加载到内存中,直到找到所需的key:value…这是可以做到的。我猜JSON.parse速度更快的原因可能是因为它有一个本机实现。我预计随着对象大小的增加,SAX风格的解析器将开始流行起来。但是,您必须对这两种方法进行基准测试,以确定哪种方法在您的情况下更快。但是缓存或者按照@JimmyCuadra说的做可能是更好的选择。