Javascript 为NodeJ转换api json响应

Javascript 为NodeJ转换api json响应,javascript,json,node.js,Javascript,Json,Node.js,我最终不得不进行黑客操作,将'true'转换为true,这会产生代码气味 是否有这样的库允许我将响应转换为所需的类型?在这种情况下,修复API以以可用格式返回数据几乎总是比尝试在客户端上后期处理结果更好 在您的情况下,您可以选择以下几种路线: 将列表直接作为JSON字符串存储在数据库中 这意味着您不必在服务器上进行任何处理,只需按原样返回即可。但是,您失去了直接查询数据的能力,需要求助于像这样的和字符串操作 以关系方式存储数据,并在服务器上进行处理以将其转换为JSON 在这里,您可以保留对数据

我最终不得不进行黑客操作,将
'true'
转换为
true
,这会产生代码气味


是否有这样的库允许我将响应转换为所需的类型?

在这种情况下,修复API以以可用格式返回数据几乎总是比尝试在客户端上后期处理结果更好

在您的情况下,您可以选择以下几种路线:

  • 将列表直接作为JSON字符串存储在数据库中

    这意味着您不必在服务器上进行任何处理,只需按原样返回即可。但是,您失去了直接查询数据的能力,需要求助于像
    这样的
    和字符串操作

  • 以关系方式存储数据,并在服务器上进行处理以将其转换为JSON

    在这里,您可以保留对数据进行查询的功能,但您可能需要进行多次查询以获取所需的所有数据,然后将其连接到服务器上。(例如,您需要在
    user
    表上执行一次
    SELECT
    操作以获取用户,然后您需要在
    friends
    表上执行另一次
    SELECT
    ,其中userid与您的第一个用户匹配。然后您需要合并这些结果以创建JSON。)这通常是最好的方法

  • 您还可以使用用户定义的函数在数据库引擎内直接将结果转换为JSON。例如使用

    这有点类似于2,但它将存储的进程绑定到JSON格式


  • 我不确定总是将字符串
    'true'
    转换为布尔值
    true
    是否是一个好主意。能否修改API以返回正确的类型?JSON格式确实支持
    true
    false
    。这不仅仅是我希望能够转换子数组上的值。AngularJS应用程序的字符串,如
    ,true,true
    [null,true,true]
    ,如果您得到的字符串是
    ,true,true'
    ,而不是正确的JSON数组,那么这就是API的问题:(@david Ahhh我会改变的。它存储在一个MySQL数据库中,不确定存储一个简单数组的最佳方式。如果你不需要对数组的元素进行查询,并且总是返回整个数组,那么你可以将其转换为JSON字符串,并将其放入nvarchar中