最近写的一个 Nodejs json 工具集,各位大大帮忙看下
最近写的一个 Nodejs json 工具集,各位大大帮忙看下
工作需要,最近写的json工具集。
功能简介
- 1.解决 get/set 节点时 undefined 的问题(例如四级节点不可能去判断四次吧)
- 2.解决 create/delete 节点时同上的问题
- 3.push/pop 目前这个功能有些鸡肋
- 4.json对象与数组的互相转换(随便写的,有好的求介绍)
- 5.print_r (格式化输出类php的print_r)
- 6.filter (过滤json对象,这个是公司用的,总监准备在schema的那个什么里面存一些配置项比如output:1就是要输出的字段,接着取数据的时候要根据配置项过滤,目前还有待完善尚未发布)
安装
npm install jsing
使用例子
获取节点
var data = {
OK: 200,
ENTRY: {
FA_TOKEN_INVALID: 1001,
FA_TOKEN_EXPIRE: 1002,
FA_USER_NOT_EXIST: 1003
}
};
var jsing = require("jsing");
console.log(jsing.get(data, "OK")); // 200
console.log(jsing.get(data, "ENTRY", "FA_TOKEN_INVALID")); // 1001
console.log(jsing.get(data, "TEST", "NOT_EXIST")); // false 节点不存在
创建节点
var empty = {};
jsing.create(empty, 'hello', 'json', 'test', 120);
jsing.print_r(empty);
结果
{
[hello] => object
{
[json] => object
{
[test] => 120
}
}
}
其他都相差不大,就不列举了。可能因为了解不是很多,原来没看到同类的东西就自己写了一个,也不知道写的怎么样。自我感觉代码是写的有点烂,如果用途还行的话,再继续维护下去。如果已经有同类的工具集的话,希望大家能介绍一下,这样也不用花时间去写了 XD
npm: https://npmjs.org/package/jsing github: https://github.com/lellansin/jsing
最近写的一个 Nodejs JSON 工具集,各位大大帮忙看下
功能简介
工作需要,最近编写了一套 JSON 工具集,旨在简化 JSON 对象的操作。以下是功能简介:
- get/set 节点:解决获取或设置深层嵌套节点时遇到
undefined
的问题。 - create/delete 节点:处理创建或删除深层嵌套节点时的复杂性。
- push/pop 节点:目前这个功能有些鸡肋,但未来可能会优化。
- JSON 对象与数组的互相转换:提供简单的转换方法。
- print_r:类似 PHP 的
print_r
函数,用于格式化输出 JSON 对象。 - filter:根据配置项过滤 JSON 对象。
安装
npm install jsing
使用例子
获取节点
var data = {
OK: 200,
ENTRY: {
FA_TOKEN_INVALID: 1001,
FA_TOKEN_EXPIRE: 1002,
FA_USER_NOT_EXIST: 1003
}
};
var jsing = require("jsing");
console.log(jsing.get(data, "OK")); // 输出: 200
console.log(jsing.get(data, "ENTRY", "FA_TOKEN_INVALID")); // 输出: 1001
console.log(jsing.get(data, "TEST", "NOT_EXIST")); // 输出: false 节点不存在
创建节点
var empty = {};
jsing.create(empty, 'hello', 'json', 'test', 120);
jsing.print_r(empty);
输出结果
{
"hello": {
"json": {
"test": 120
}
}
}
其他功能
- 删除节点
var data = {
OK: 200,
ENTRY: {
FA_TOKEN_INVALID: 1001,
FA_TOKEN_EXPIRE: 1002,
FA_USER_NOT_EXIST: 1003
}
};
jsing.delete(data, "ENTRY", "FA_TOKEN_INVALID");
jsing.print_r(data);
输出结果
{
"OK": 200,
"ENTRY": {
"FA_TOKEN_EXPIRE": 1002,
"FA_USER_NOT_EXIST": 1003
}
}
- JSON 对象与数组的互相转换
var obj = { a: 1, b: 2 };
var arr = jsing.objToArray(obj);
console.log(arr); // 输出: [{ key: 'a', value: 1 }, { key: 'b', value: 2 }]
var newObj = jsing.arrayToObj(arr);
console.log(newObj); // 输出: { a: 1, b: 2 }
- 格式化输出
var data = {
OK: 200,
ENTRY: {
FA_TOKEN_INVALID: 1001,
FA_TOKEN_EXPIRE: 1002,
FA_USER_NOT_EXIST: 1003
}
};
jsing.print_r(data);
输出结果
{
"OK": 200,
"ENTRY": {
"FA_TOKEN_INVALID": 1001,
"FA_TOKEN_EXPIRE": 1002,
"FA_USER_NOT_EXIST": 1003
}
}
- 过滤 JSON 对象
var data = {
OK: 200,
ENTRY: {
FA_TOKEN_INVALID: 1001,
FA_TOKEN_EXPIRE: 1002,
FA_USER_NOT_EXIST: 1003
}
};
var config = {
output: ["OK", "ENTRY.FA_TOKEN_EXPIRE"]
};
var filteredData = jsing.filter(data, config.output);
jsing.print_r(filteredData);
输出结果
{
"OK": 200,
"ENTRY": {
"FA_TOKEN_EXPIRE": 1002
}
}
如果已经存在类似的工具集,请大家推荐一下。如果有改进的空间,也欢迎提供建议!希望这个工具集对大家有用。
npm: https://npmjs.org/package/jsing
GitHub: https://github.com/lellansin/jsing
支持,虽然我用不上。
谢谢支持 ^_^
不知道是不是说的太含糊,我整理一下文档重新编辑一下
从你的描述来看,你开发了一个名为 jsing
的 Node.js JSON 工具包,旨在简化 JSON 操作,如 get
、set
、create
、delete
等操作,并且支持 JSON 和数组之间的转换,以及类似 PHP 的 print_r
功能。以下是一些具体的代码示例和简要说明:
获取节点
var data = {
OK: 200,
ENTRY: {
FA_TOKEN_INVALID: 1001,
FA_TOKEN_EXPIRE: 1002,
FA_USER_NOT_EXIST: 1003
}
};
var jsing = require("jsing");
console.log(jsing.get(data, "OK")); // 输出: 200
console.log(jsing.get(data, "ENTRY", "FA_TOKEN_INVALID")); // 输出: 1001
console.log(jsing.get(data, "TEST", "NOT_EXIST")); // 输出: false 节点不存在
创建节点
var empty = {};
jsing.create(empty, 'hello', 'json', 'test', 120);
jsing.print_r(empty);
// 结果
/*
{
[hello] => object
{
[json] => object
{
[test] => 120
}
}
}
*/
删除节点
var data = {
a: {
b: {
c: 1
}
}
};
var jsing = require("jsing");
jsing.delete(data, "a", "b");
console.log(data); // 输出: { a: { b: {} } }
JSON 和数组转换
var jsing = require("jsing");
var obj = { a: 1, b: 2 };
var arr = jsing.toObjectArray(obj);
console.log(arr); // 输出: [{ key: 'a', value: 1 }, { key: 'b', value: 2 }]
var newObj = jsing.fromObjectArray(arr);
console.log(newObj); // 输出: { a: 1, b: 2 }
过滤 JSON 对象
var data = {
a: 1,
b: 2,
c: 3
};
var filterConfig = {
output: ["a", "c"]
};
var filteredData = jsing.filter(data, filterConfig.output);
console.log(filteredData); // 输出: { a: 1, c: 3 }
如果你已经实现了上述功能并且觉得这些代码对你有用,可以继续维护和改进这个库。如果已经存在类似的工具包,欢迎推荐。