JArray
をJObject
に追加する方法は? jarrayObj
を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]"
}
投稿したコードには2つの問題があります。
parameterNames
は、カンマを含む単一の文字列ではなく、文字列の配列である必要があります。JArray
をJObject
に直接追加することはできません。それをJProperty
に入れて、thatをJObject
に追加する必要があります。これは、 "birthday"および "email"プロパティで行うのと同じです。修正されたコード:
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]"
}
また、今後の参考のために、コードで例外が発生している場合は、質問で例外が何であるかを正確に伝えると役立つため、推測する必要はありません。それは私たちがあなたを助けることをより簡単にします。
var jObject = new JObject();
jObject.Add("birthday", "2011-05-06");
jObject.Add("email", "[email protected]");
var items = new [] { "Item1", "Item2", "Item3" };
var jSonArray = JsonConvert.SerializeObject(items);
var jArray = JArray.Parse(jSonArray);
jObject.Add("_delete", jArray);