2
我有一個現有的應用程序發送帶有名爲'filters'的參數的請求。 'filters'參數包含一個JSON編碼的字符串。例如:ServiceStack - 請求綁定JSON編碼參數
[{"dataIndex":"fieldName", "value":"fieldValue"}, {"dataIndex":"field2", "value":"value2"}].
使用ServiceStack,我想將它作爲C#對象(類Grid)上的一個屬性進行綁定。 有沒有一種首選的方法來處理這個問題?以下是我能想到的選項。我不覺得任何'感覺'是正確的。
選項1: 我有一個'ServiceModel'項目,這將創建一個我不太喜歡它的依賴項。
在AppHost.Configure()方法中添加
RequestBinders[typeof(Grid)] => httpReq => {
return new Grid() {
Filters = new ServiceStack.Text.JsonSerializer<IList<Filter>>().DeserializeFromString(httpReq.QueryString["filters"])
}
}
選項2: 似乎有點 '哈克'
public class Grid
{
private string _filters;
public dynamic Filters {
get
{
ServiceStack.Text.JsonSerializer<IList<Filter().DeserializeFromString(_filters);
}
set
{
_filters = value;
}
}
}
消除了雙引號和空白符合JSV格式和默認綁定「正常工作」。一個陷阱就是我使用的是ExtJS庫,它似乎逃避了url中的所有字符,所以我需要解決這個問題。謝謝! – paaschpa