如何在node.js中使用ecma6(typescript)解析Map到json
How to parse a Map to json with ecma6 (typescript) in node.js
使用以下代码,我在app.js中使用节点5.1和typescript 6.1.2 时出错
我试图解析的文件是firefox的bookmark.json。我的目标是将它解析为map,使用它并将其解析回json。
'use strict';
declare function require(name:string);
let fs = require('fs');
fs.readFile( './bookmarks.json', 'utf8', handleFile );
function handleFile( err, data ) {
function strMapToObj(strMap) {
let obj = Object.create(null);
for (let [k,v] of strMap) {
obj[k] = v;
}
return obj;
}
function strMapToJson(strMap) {
return JSON.stringify(strMapToObj(strMap));
}
function objToStrMap(obj) {
let strMap = new Map();
for (let k of Object.keys(obj)) {
strMap.set(k, obj[k]);
}
return strMap;
}
function jsonToStrMap(jsonStr) {
return objToStrMap(JSON.parse(jsonStr));
}
if(err) throw err;
let myMap = jsonToStrMap(JSON.parse(JSON.stringify(data)));
console.log(myMap); // works well
let result = strMapToJson(myMap);
console.log(result); // returns an error
}
我遇到一个语法错误,带有一个意外的标记对于(strMap的let[k,v])
如何修复?
如何将这样一个映射从firefoxbookmarks.json解析回json?
好吧,这是我的解决方案:我使用的json8库来自https://github.com/JSON8/JSON8
'use strict';
declare function require(name:string);
let fs = require('fs');
let oo = require('json8');
fs.readFile( './bookmarks.json', 'utf8', handleFile );
function handleFile( err, data ) {
function mapToJson(map) {
return oo.serialize(map);
}
function objToStrMap(obj) {
let strMap = new Map();
for (let k of Object.keys(obj)) {
strMap.set(k, obj[k]);
}
return strMap;
}
function jsonToStrMap(jsonStr) {
return objToStrMap(JSON.parse(jsonStr));
}
if(err) throw err;
let myMap = jsonToStrMap(JSON.parse(JSON.stringify(data)));
//console.log(myMap);
let result = mapToJson(myMap);
console.log(result); // gives the correct object back
}
相关文章:
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 使用JQuery解析JSON嵌套数组
- 可以简化嵌套的延迟Q Promises解析吗
- 我的模板未被解析
- Foreach无法在Typescript中工作
- 如何在Javascript中解析AJAX数组的特定部分
- 扩展SVGTextElement时出现Typescript Uncaught TypeError
- 为什么无法在TypeScript中导出类实例
- 主干集合重置和解析
- 解析javascript表单验证器
- 如何将TypeScript对象转换为普通对象
- 可以't使用Angular解析/检索JSON
- Jasmine Testing with Angular Promise 无法使用 TypeScript 解析
- 在 Angular 应用程序中将 JSON 解析为 Typescript 类
- 编译输出中的TypeScript依赖项未按正确顺序解析
- 如何在node.js中使用ecma6(typescript)解析Map到json
- 我可以用typescript.js做一些语言解析吗
- 有没有办法在typescript文件中解析c# ?
- TypeScript 1.8在AMD风格模块中的相对模块名解析与RequireJS 2.1
- 稍后在TypeScript中解析或拒绝Promise