2013-10-28 37 views
10

如何將JArray添加到JObject?將jarrayObj更改爲JObject時,我收到異常。如何將jarray對象添加到JObject中

parameterNames = "Test1,Test2,Test3"; 

JArray jarrayObj = new JArray(); 

foreach (string parameterName in parameterNames) 
{ 
    jarrayObj.Add(parameterName); 
} 

JObject ObjDelParams = new JObject(); 
ObjDelParams["_delete"] = jarrayObj; 

JObject UpdateAccProfile = new JObject(
           ObjDelParams, 
           new JProperty("birthday", txtBday), 
           new JProperty("email", txtemail)) 

我需要這種形式的輸出:

{ 
    "_delete": ["Test1","Test2","Test3"], 
    "birthday":"2011-05-06",   
    "email":"[email protected]" 
} 

回答

14

我看到兩個問題與您的代碼,你張貼。

  1. parameterNames需要是一個字符串數組,而不只是一個包含逗號的字符串。
  2. 您不能直接將JArray添加到JObject;您必須將其放入JProperty,並將添加到JObject,就像您對「生日」和「電子郵件」屬性所做的一樣。

更正代碼:

string[] parameterNames = new string[] { "Test1", "Test2", "Test3" }; 

JArray jarrayObj = new JArray(); 

foreach (string parameterName in parameterNames) 
{ 
    jarrayObj.Add(parameterName); 
} 

string txtBday = "2011-05-06"; 
string txtemail = "[email protected]"; 

JObject UpdateAccProfile = new JObject(
           new JProperty("_delete", jarrayObj), 
           new JProperty("birthday", txtBday), 
           new JProperty("email", txtemail)); 

Console.WriteLine(UpdateAccProfile.ToString()); 

輸出:

{ 
    "_delete": [ 
    "Test1", 
    "Test2", 
    "Test3" 
    ], 
    "birthday": "2011-05-06", 
    "email": "[email protected]" 
} 

而且,以供將來參考,如果你得到你的代碼中的例外,它是有益的,如果你在你的問題究竟是什麼例外,以便我們不必猜測。它使我們更容易幫助你。