ServiceStack returns 部分属性?
ServiceStack returns partial properties?
我正在尝试 return 仅部分属性而不是全部。很明显是GET方法。 link 就像:
http://websitename/classname?parameter1=xyz¶meter2=abc
我可以得到 parameter1,parameter2
和 xyz,abc
。
我想知道如何有条件地序列化 json?我想使用 shouldSerialize
方法但不确定如何使用它?请赐教。谢谢。
public Object Get(SalesOrderDetails request)
{
SalesOrderDataProcess sODP = new SalesOrderDataProcess(Db);
SalesOrder salesOrderTemp = sODP.GetSalesOrderById(request.SalesOrderId);
if (base.Request.QueryString.ToString().IsEmpty())
return salesOrderTemp;
else
{
JsonObject obj = JsonObject.Parse(salesOrderTemp.ToJson<SalesOrder>());
JsonObject obj1 = new JsonObject();
foreach (var entry in base.Request.QueryString)
{
var temp = base.Request.QueryString[entry.ToString()].ToString();
obj1.Add(entry.ToString(), (string)obj[entry.ToString()]);
}
return JsonSerializer.DeserializeFromString<Object>(obj1.ToJson());
}
}
对于初始实施,它正在运行,但我想要一些改进代码的建议。
在 ServiceStack.Text 的 Conditional Serialization 上查看此答案。
您的 SalesOrder
可以有一个 bool ShouldSerialize(fieldName)
方法来指示哪些字段应该被序列化,例如:
public class SalesOrder
{
HashSet<string> IncludeFields;
public bool? ShouldSerialize(string fieldName)
{
return IncludeFields.Contains(fieldName);
}
}
我正在尝试 return 仅部分属性而不是全部。很明显是GET方法。 link 就像:
http://websitename/classname?parameter1=xyz¶meter2=abc
我可以得到 parameter1,parameter2
和 xyz,abc
。
我想知道如何有条件地序列化 json?我想使用 shouldSerialize
方法但不确定如何使用它?请赐教。谢谢。
public Object Get(SalesOrderDetails request)
{
SalesOrderDataProcess sODP = new SalesOrderDataProcess(Db);
SalesOrder salesOrderTemp = sODP.GetSalesOrderById(request.SalesOrderId);
if (base.Request.QueryString.ToString().IsEmpty())
return salesOrderTemp;
else
{
JsonObject obj = JsonObject.Parse(salesOrderTemp.ToJson<SalesOrder>());
JsonObject obj1 = new JsonObject();
foreach (var entry in base.Request.QueryString)
{
var temp = base.Request.QueryString[entry.ToString()].ToString();
obj1.Add(entry.ToString(), (string)obj[entry.ToString()]);
}
return JsonSerializer.DeserializeFromString<Object>(obj1.ToJson());
}
}
对于初始实施,它正在运行,但我想要一些改进代码的建议。
在 ServiceStack.Text 的 Conditional Serialization 上查看此答案。
您的 SalesOrder
可以有一个 bool ShouldSerialize(fieldName)
方法来指示哪些字段应该被序列化,例如:
public class SalesOrder
{
HashSet<string> IncludeFields;
public bool? ShouldSerialize(string fieldName)
{
return IncludeFields.Contains(fieldName);
}
}