Добавить массив в собственность - PullRequest
1 голос
/ 31 октября 2019

Я пытаюсь найти способ добавить массив в свойство. В настоящее время я добавляю non-arrys без проблем.

var root = JObject.Parse(contractJson.ToString());

//get company name node
var companyNameMatches = root.Descendants()
    .OfType<JObject>()
    .Where(x => x["question"] != null && x["question"].ToString() == "Name of the company");
//add answer result to company name node
foreach (JObject jo in companyNameMatches)
{
    jo.Add("answer", new JObject(new JProperty("result", Request.Form["Companyname"].ToString())));
}

Итак, эта строка ... как сделать «ответ» в массиве:

jo.Add("answer", new JObject(new JProperty("result", Request.Form["Companyname"].ToString())));

Искать этот вывод:

"answer":[ 
    { 
       "result": "value"
    }
 ]

Ответы [ 2 ]

3 голосов
/ 31 октября 2019

Ваше свойство answer должно быть массивом, поэтому для этого следует использовать JArray. Измените эту строку:

jo.Add("answer", new JObject(new JProperty("result", Request.Form["Companyname"].ToString())));

на:

// Create the object to put in the array
var result = new JObject(new JProperty("result", Request.Form["Companyname"].ToString()));
// Create the array as the value for the answer property
jo.Add("answer", new JArray { result });
0 голосов
/ 31 октября 2019

Это потому, что вы используете JObject.

, используйте объект JArray. JArray - это JContainer, то есть JToken, который вы можете добавить к JObject.

, например, json пользователей:

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

JArray jarrayObj = new JArray();

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

string bDay = "2011-05-06";
string email = "dude@test.com";

JObject UpdateTestProfile = new JObject(
                               new JProperty("_delete", jarrayObj),
                               new JProperty("birthday", bDay),
                               new JProperty("email", email));

Console.WriteLine(UpdateTestProfile.ToString());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...