最近写的一个 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


5 回复

最近写的一个 Nodejs JSON 工具集,各位大大帮忙看下

功能简介

工作需要,最近编写了一套 JSON 工具集,旨在简化 JSON 对象的操作。以下是功能简介:

  1. get/set 节点:解决获取或设置深层嵌套节点时遇到 undefined 的问题。
  2. create/delete 节点:处理创建或删除深层嵌套节点时的复杂性。
  3. push/pop 节点:目前这个功能有些鸡肋,但未来可能会优化。
  4. JSON 对象与数组的互相转换:提供简单的转换方法。
  5. print_r:类似 PHP 的 print_r 函数,用于格式化输出 JSON 对象。
  6. 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 操作,如 getsetcreatedelete 等操作,并且支持 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 }

如果你已经实现了上述功能并且觉得这些代码对你有用,可以继续维护和改进这个库。如果已经存在类似的工具包,欢迎推荐。

回到顶部