我正在探索创建将数据或对象映射到模式的通用API的选项。我有两个问题。
问题1.我想要实现的是,我们应该能够传递任何平面结构的数据并将其映射到相应的模式/类,这是一个分层结构。我们可以在这个用例中使用normalizr吗?
我的来源如下:
//bare with me... i am not listing my source/destination as a proper json.
Source {
String employerId;
String employerName;
String employeeId;
String employeeName;
}
然后我有
SourceList{
List of <Source>;
}
我的目的地:
public class Employers {
List<Employer> employer;
//getters and setters here
}
Employer {
String employerId;
String employerName;
List of <Employee>;
}
Employee {
String employeeId;
String employeeName;
}
我想将Map SourceList映射到雇主映射。我想调用normalize函数,它应该为我做的工作。我可以使用normalizr实现这一目标。
问题2.我们浏览了有关函数规范化(数据,模式)的文档。 在示例中,我们看到schama是schema.js文件。我们在这个schema.js文件中有什么?它是一个javascript,具有目标映射的源的实际定义?或者它是我们将数据映射到的结构?我可以将JSON Schema作为&#39;架构的值传递。 normalize函数中的参数?
答案 0 :(得分:0)
@PaulArmstrong,这是我试过的。对于初学者,我试图运行github示例文件夹中给出的示例。
我将normalizr下载到C:\ normalizr-master。我运行了命令
$ npm install --save-dev babel-cli以及随后的
$ npm install --save-dev babel-preset-es2015 babel-preset-stage-2。
我运行了纱线命令
然后我执行了以下命令:我收到如下错误。什么不对吗?
C:\ normalizr-master \ node_modules.bin&gt; babel-node C:\ normalizr- 主\例子\关系\ index.js
C:\ normalizr主\ node_modules \ babel- 核心\ LIB \转化\文件\选项\期权manager.js:328 扔掉; ^
错误:无法找到相对于目录“C:\ normalizr-”的预设“env” master“(处理预设时:”C:\ normalizr-master \ .babelrc.js“) (在处理预设时:“C:\ normalizr-master \ .babelrc.js”)(而 处理预设:“C:\ normalizr-master \ .babelrc.js”) 在C:\ normalizr-master \ node_modules \ babel-core \ lib \ transformation \ file \ optio ns \ option-manager.js:293:19在Array.map() 在OptionManager.resolvePresets(C:\ normalizr-master \ node_modules \ babel-core \ LIB \转化\文件\选项\期权manager.js:275:20) 在OptionManager.mergePresets(C:\ normalizr-master \ node_modules \ babel-core \ l IB \转化\文件\选项\期权manager.js:264:10) 在OptionManager.mergeOptions(C:\ normalizr-master \ node_modules \ babel-core \ l IB \转化\文件\选项\期权manager.js:249:14) 在C:\ normalizr-master \ node_modules \ babel-core \ lib \ transformation \ file \ optio NS \期权manager.js:265:14 在C:\ normalizr-master \ node_modules \ babel-core \ lib \ transformation \ file \ optio NS \选项-manager.js:323:22 在Array.map() 在OptionManager.resolvePresets(C:\ normalizr-master \ node_modules \ babel-core \ LIB \转化\文件\选项\期权manager.js:275:20) 在OptionManager.mergePresets(C:\ normalizr-master \ node_modules \ babel-core \ l IB \变换\文件\选项\选项-manager.js:264:10)