2014-04-09 32 views
0

在下面的代码,我有我已填充带有参数的字典“nissi_params_fields”:包括字典匿名类型,然后序列化,形成JSON

Dictionary<string, string> nissi_params_fields = new Dictionary<string, string>(); 
string[] separator = { "," }; 
string[] dfields = form_fields.Split(separator, StringSplitOptions.RemoveEmptyEntries); 
string[] ffields = db_fields.Split(separator, StringSplitOptions.RemoveEmptyEntries); 

foreach (var field in ffields) 
{ 
    NissiMain nm = new NissiMain(); 
    object field_object = nm.nissi_get_object_by_name(field); 
    string fieldvalue = nm.nissi_get_object_value_by_name(field_object); 
    nissi_params_fields[field] = fieldvalue; 
    this.nissiSetStorageItem(save_page, field, fieldvalue); 
} 
nissi_params_fields["company_id"] = this.nissiGetStorageItem("nissi_base", "ni_companyID"); 
string nissi_params_id = ""; 

if (save_type == "edit") 
{ 
    nissi_params_fields["id"] = this.nissiGetStorageItem(save_page, "id"); 
    nissi_params_id = this.nissiGetStorageItem(save_page, "id"); 
} 

我现在要创建一个包含匿名类型上述“nissi_params_fields”字典作为一个字段“田”,所以我第一次尝试“nissi_params_fields”转换为对象“nissi_params_fields_object”我可以在Newtonsoft JObject“nissi_params_object”使用:

object nissi_params_fields_object = nissi_params_fields.ToArray(); 

的挑战是如何转换吨他字典到一个对象...我怎么做到这一点?

我现在想在匿名类型转换后的对象“nissi_params_fields_object”,然后使用序列化整个事情到JSON的Newtonsoft JObject:

JObject nissi_params_object = JObject.FromObject(new 
{ 
    apikey = this.nissiGetStorageItem("nissi_base", "ni_apiKey"), 
    company_id = this.nissiGetStorageItem("nissi_base", "ni_companyID"), 
    id = nissi_params_id, 
    fields = nissi_params_fields_object, 
}); 
+0

你为什么要转换字典? –

+0

谢谢pravprab!我只是想以/url.php?nissi_request=MyRequest&nissi_params={"apikey":"xxyyzz","company_id":"1",fields={"lastname":"hello“的格式创建url字符串(带有JSON参数) ”, “名字”: “世界”}} – bolaji

回答

0

如果你只是想JSON序列化对象,你可以做:

string jsonString = JsonConvert.SerializeObject(nissi_params_object); 

然后将jsonString追加到该URL。