【发布时间】:2014-02-08 06:51:53
【问题描述】:
我对 NODE.JS 还很陌生,希望能更上一层楼。
我有一个 NODE.JS 脚本,它从提要中读取数据并将其呈现为一个巨大的 JSON 文件。然后,我有网页和移动应用程序,它们使用此文件使用 JQuery 函数呈现内容。
但是我想让这更有效,并且我希望节点服务器使用我编写的脚本从 JSON 文件中提取内容并将其分解为更小的 JSON 文件。这将阻止移动应用和网页进行任何渲染。
我已经让服务器运行(快速),我希望服务器监听调用,然后从 JSON 文件中提取数据并将其重新呈现为一个较小的文件,然后使用 res. json
我有监听器,脚本,我只是缺少将循环遍历 JSON 文件中的数据并输出另一个可由 res.json 呈现的动态 JSON 文件的部分
Feed(第一部分)的示例
{
"RTPPDataMsgV1": {
"owner": "Open Data",
"timestamp": "1390097100000",
"classification": "public",
"Sender": {
"application": "RTPP3",
"organisation": "String"
},
"Publication": {
"TopicID": "RTPP3/InternalPP"
},
"RTPPData": {
"snapshotTStamp": "1390097100000",
"SystemMsg": null,
"RAGThresholds": [
{
"type": "TOC",
"medium": "89",
"good": "92"
},
{
"type": "PPT",
"medium": "85",
"good": "91"
}
],
"PPT": {
"rag": "W",
"ragDisplayFlag": "Y",
"text": "-1"
},
此信息每 5 分钟下载一次,并且始终会更改。我希望服务器提取其中的一小部分并将其作为另一个小得多的 JSON 文件提供。例如,如果我只想要 RagTHRESHOLDS 部分,或者地狱,甚至只是时间戳。
所有这些都可以发生在内存中,不需要将操作系统写入文件,我只需要服务器接受请求(在本例中为 RAG 阈值),读取信息并通过 res.json 提供它('生成较小的 JSON 文件') 即
{ "type": "TOC", "medium": "89", "good": "92" }, { "type": "PPT", "medium": "85", "good": "91" }
在提取当前应用程序的所有信息时,我的脚本会多次检查大量数据,这在一些旧手机上是个问题。如果我能够提供一点点大小的块并将精力从手机上移开,它将大大加快速度
【问题讨论】:
-
好的,您需要我们提供什么?
-
你能用普通的解析器实际加载这个巨大的 JSON 文件吗?如果是这样,只需将您想要的部分复制到常规对象,然后写入该对象。 Express 会为您生成 JSON。
-
取决于 json,它甚至可能是不可能的。如果你有一个大的平面对象或数组,你可以尝试填充“}”、“]”等的几种排列,并尝试在 try/catch 中解析它。但是,字符串文字中的语法可能会混淆幼稚的尝试,因此如果您的数据是代码或更多 json,则可能会非常棘手。
-
添加了提要的 sn-p 以及有关我正在寻找的内容的更多信息
-
我猜我需要从 JSON 中读取数据,创建一个数组或字符串变量,然后使用 JSON.Stringify 转换回 JSON
标签: javascript jquery json node.js