使用 stringify 时将未分配的 JSON 属性发送到服务器,即保留属性名称,无论 属性 值为 empty/null
Send unassigned JSON properties to server when using stringify i.e. retain properties name whether property value is empty/null
我有两个模型属性:
ng-model="category.name" mandatory field
ng-model="category.desc" optional
这就是我向服务器发送数据的方式 (ASP.net)
var rdt = "{'dt':" + JSON.stringify($scope.category) + "}";
但是,如果可选的 属性 具有未分配的值,则服务器端找不到 属性 名称并给出错误。有什么方法可以保留 JSON 的未分配属性?
您有几种解决方案:
解决方案 1:初始化范围内的变量,例如:
$scope.category.desc = null
解决方案 2:创建一个函数来解决这个问题
function ToJson(object, properties) {
var result = {};
for(var i = 0; i < properties.lenght; i++) {
var property = properties[i];
if(!object[property]) {
result[property] = null;
} else {
result[property] = object[property];
}
}
return JSON.stringify(result);
}
// And then use it like this:
var rdt = "{'dt':" + ToJson($scope.category, ["name", "desc"]) + "}";
我有两个模型属性:
ng-model="category.name" mandatory field
ng-model="category.desc" optional
这就是我向服务器发送数据的方式 (ASP.net)
var rdt = "{'dt':" + JSON.stringify($scope.category) + "}";
但是,如果可选的 属性 具有未分配的值,则服务器端找不到 属性 名称并给出错误。有什么方法可以保留 JSON 的未分配属性?
您有几种解决方案:
解决方案 1:初始化范围内的变量,例如:
$scope.category.desc = null
解决方案 2:创建一个函数来解决这个问题
function ToJson(object, properties) {
var result = {};
for(var i = 0; i < properties.lenght; i++) {
var property = properties[i];
if(!object[property]) {
result[property] = null;
} else {
result[property] = object[property];
}
}
return JSON.stringify(result);
}
// And then use it like this:
var rdt = "{'dt':" + ToJson($scope.category, ["name", "desc"]) + "}";