json - 用于查询的 JSON 到 OData 字符串
问题描述
如何{ username: "john", password: "1234" }
使用 typescript 将 JSON 对象转换为函数中的 OData 字符串查询?我找不到为我执行此操作的库(Angular 6)。这是我的尝试:
function ConvertToODataString (json: Object) {
let ret_str: string = "";
for (let key in json) {
ret_str += (key + "=" + json[key] + "&");
}
if (ret_str) {
ret_str = ret_str.substr(0, ret_str.length - 1); // remove last &
}
return ret_str;
}
有人知道更好的方法吗?目前,我的 json 不是多层次的。
解决方案
您可以使用for ... in枚举对象属性,将每个键/值对添加到数组中,并将值与Array.join 组合:
function convertObjectToQuery(obj: Object): string {
let values = new Array<string>();
for (let prop in obj) {
values.push(`${prop} eq '${obj[prop]}'`);
}
return encodeURI("$filter=" + values.join(" and "));
}
请参阅此 stackblitz以获取演示。
推荐阅读
- java - 带有特殊字符的 SWT 表过滤器
- xamarin - Xamarin 表单:BindingProperty 未设置属性
- javascript - Android Webview - 本地 javascript 执行中未捕获的 ReferenceError
- sql - 如何在 SQL 开发人员中获取具有日期值的 2 列的月差?
- javascript - 如何使用 w2ui 在组合框中获取字符串?
- android - 反应本机android应用程序中的图像显示
- python - 将两个神经网络的损失函数与一些权重相结合并同时训练它们
- makefile - “make”如何确定使用哪个链接器?
- cloudsim - 如何计算VM的功耗?
- azure - 具有静态 IP 和自定义证书/AKS 入口问题的 AKS