Как добавить jarray Object в JObject

Как добавить 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]" 
}

Ответ 1

Я вижу две проблемы с вашим кодом, когда вы разместили его.

  • parameterNames должен быть массив строк, а не только одна строка с запятыми.
  • Вы не можете добавить 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]"
}

Кроме того, для справки в будущем, если вы получаете исключение в своем коде, полезно, если вы скажете в своем вопросе именно то, что такое исключение, так что нам не нужно гадать. Это облегчает нам помощь.