Сериализация анонимного массива JSON без ключей

#c# #arrays #json #serialization #anonymous-types

#c# #массивы #json #сериализация #анонимные типы

Вопрос:

У меня есть анонимный объект JSON, и мне нужно добавить к нему список строк (параметр: ProductOptions). Мне нужно поместить их в JSON-массив без ключа. Как бы я это сделал с анонимными типами?

 public static List<Product> getProductsByProductOptions(long salespartnerGroupID, string marktCode, long producttypeGroupID, long productvalueGroupID, long deviceGroupID, List<string> productOptions)
{
   RestRequest request = newRestRequest("getProductsByProductOptions");
    
   var jsonObj = new
   {
      input = new
      {
         spbgid = salespartnerGroupID,
         code = marktCode,
         producttypegid = producttypeGroupID,
         productvaluegid = productvalueGroupID,
         devicegid = deviceGroupID,
         productOptions = new { item = productOptions }
      },
   };
    
   IRestResponse response = GetResponseAndSerialize(jsonObj, request);
    
    
   BaseProduct myDeserializedClass = JsonConvert.DeserializeObject<BaseProduct>(response.Content);
    
   return myDeserializedClass.@return.item;
}
 

Мне нужно, чтобы JSON был таким:

 "input": {
    "spbgid": 3797,
    "code": "xxx",
    "producttypegid": 5239,
    "productvaluegid": 0,
    "devicegid": 4030,
    "productOptions": {
        "item": [
            "SCREEN_PROTECTOR", "REPLACEMENT"
        ]
    }
}
 

Комментарии:

1. Какой JSON выдает ваш код прямо сейчас?

Ответ №1:

Я не уверен, почему, но использование RestSharp.JsonSerializer вместо JsonConvert устранило проблему. Анонимный объект, по-видимому, работает просто отлично.