Parsing JSON stream
Parsing JSON stream
我有一个使用chrome.sockets
的应用程序。JSON正在从套接字传递到套接字,该套接字没有分隔符,也没有以字符串长度为前缀。
现在在chrome.sockets
中读取套接字的方式是通过传递最大缓冲区长度,它将读取所有可用的字节,直到缓冲区满。socket.read
的文档可以在这里找到
缺少编写/移植解析器,是否有一个JavaScript JSON解析器,我可以简单地在socket.read
的响应管道?
你看过https://github.com/creationix/jsonparse吗?看起来它假设了一个Node.js环境,但它不像它会很难调整API来满足您的需求。
更新:由于您需要检查JS是否有效,您可以使用JSON。解析来检查它是否是有效的JSON,这应该总是在Chrome中可用。您可以将arraybuffer转换为字符串,并将其附加到累加器字符串上,并在每次迭代后对该字符串执行以下检查。
function isValidJSON(str) {
try {
JSON.parse(str);
} catch (e) {
return false;
}
return true;
};
// assuming 16bit uint unicode chars
function ab2str(buf) {
return String.fromCharCode.apply(null, new Uint16Array(buf));
}
下面是一个可以使用的回调函数示例:
jsonData = "";
function readJSONFromSocket(object readInfo) {
// Arraybuffer to string
partialJSONData = ab2str(readInfo.data);
// Loop through the chars until we get a valid JSON object
for (var x = 0; x < partialJSONData.length; x++) {
// Build up the JSON character by character
jsonData += partialJSONData.charAt(x);
if (isValidJSON(jsonData)) {
console.log(jsonData);
// Do something here
jsonData = "";
}
}
};
我知道这个问题是一段时间前发布的,但这里有一个很好的方法来处理这个
安装Node JS,安装NPM (Node Package Manager)
npm install -g browserify
npm install -g JSONStream
echo "window.JSONStream = require('JSONStream');" > script.js
browserify script.js jsonstream.js
在你的网页
var parseStream = new JSONStream('*');
while (var buffer = socket.read()) {
parseStream.write(buffer);
}
parseStream.on('data', function (obj) {
// obj is a parsed obj
})
如果你想要管道方法,因为你是unix的粉丝。然后添加
npm install shoe
shoe('./socketName').pipe(parseStream);
相关文章:
- jQuery匹配JSON对象的部分文本
- 在循环中分配json值时,值被覆盖
- 需要帮助设置json数组
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 使用JQuery解析JSON嵌套数组
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 如何使用json将对象列表从java转换为javascript
- 如何使用 node.js 比较两个 json 数组
- 如何将JSON数据导入我的ejs模板
- 区分JSON中的矩阵和列表列表
- 不显示带有本地json文件数据的谷歌地图脚本
- 如何将json数据显示为html
- 如何为json对象中的段发送array[]
- 根据id将json数组组合为一个json数组
- Json数据包含日期和时间格式
- Parsing JSON stream
- Stream of JSON objects