Size: a a a

var chat = new Chat();

2020 June 10

Е

Енотечка in var chat = new Chat();
и у нормальных людей обчно есть какой-то проп, который говорит что в этом самом условном "value" будет
источник

R

RA-TA-TATA in var chat = new Chat();
Либо под эту модель
источник

R

RA-TA-TATA in var chat = new Chat();
Но пример самого файла не найду щас, их там миллионы, хрен найду
источник

VL

Vova Lantsov in var chat = new Chat();
Енотечка
у тебя что-то не так, если у тебя может и строчка и объект прийти по одному имени
ты скажи это динамически типизированным языкам, на которых апи строятся именно такие
источник

VL

Vova Lantsov in var chat = new Chat();
а тебе с ним потом работать из шарпа
источник

VL

Vova Lantsov in var chat = new Chat();
https://stackoverflow.com/a/27132295 пробуй чёт такое, можно без наследования, просто поставь JsonIgnore на оба свойства (строка и твоя модель) и вручную копируй в конвертере проверяя как в примере - как вариант. Лучше подсказать не могу
источник

VL

Vova Lantsov in var chat = new Chat();
источник

R

RA-TA-TATA in var chat = new Chat();
Vova Lantsov
https://stackoverflow.com/a/27132295 пробуй чёт такое, можно без наследования, просто поставь JsonIgnore на оба свойства (строка и твоя модель) и вручную копируй в конвертере проверяя как в примере - как вариант. Лучше подсказать не могу
да я делал через try catch
источник

R

RA-TA-TATA in var chat = new Chat();
но это чистый говнокод
источник

VL

Vova Lantsov in var chat = new Chat();
Та какой try catch
источник

VL

Vova Lantsov in var chat = new Chat();
Ты в конвертере в JObject читаешь
источник

R

RA-TA-TATA in var chat = new Chat();
Vova Lantsov
Та какой try catch
да читаю, пагади
источник

LU

Lars Ulrich in var chat = new Chat();
RA-TA-TATA
Либо под эту модель
ну так какие проблемы. вешаешь на поле agent_address атрибут JsonConverter(typeof(AgentAddressConverter))
 public class AgentAddresConverter : JsonConverter
   {
       public override bool CanConvert(Type objectType) { return true; }
       
       public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
       {          
           throw new NotImplementedException();
       }

       public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
       {
           JToken token = JToken.Load(reader);

           return token.Type == JTokenType.String ? (object)token : token.ToObject<AgentAddress>();
       }
   }
источник

R

RA-TA-TATA in var chat = new Chat();
Lars Ulrich
ну так какие проблемы. вешаешь на поле agent_address атрибут JsonConverter(typeof(AgentAddressConverter))
 public class AgentAddresConverter : JsonConverter
   {
       public override bool CanConvert(Type objectType) { return true; }
       
       public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
       {          
           throw new NotImplementedException();
       }

       public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
       {
           JToken token = JToken.Load(reader);

           return token.Type == JTokenType.String ? (object)token : token.ToObject<AgentAddress>();
       }
   }
воу воу..
Щас попробую, спасибо
источник

LU

Lars Ulrich in var chat = new Chat();
RA-TA-TATA
воу воу..
Щас попробую, спасибо
 public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
       {
           JToken t = JToken.FromObject(value);

           if (t.Type == JTokenType.String )
           {
               writer.WriteValue(t);
           }
           else
           {
               JObject o = (JObject)t;              

               o.WriteTo(writer);
           }
       }
на тебе еще писатель
источник

R

RA-TA-TATA in var chat = new Chat();
Lars Ulrich
 public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
       {
           JToken t = JToken.FromObject(value);

           if (t.Type == JTokenType.String )
           {
               writer.WriteValue(t);
           }
           else
           {
               JObject o = (JObject)t;              

               o.WriteTo(writer);
           }
       }
на тебе еще писатель
По итогу работать через JsonConvert?
источник

VL

Vova Lantsov in var chat = new Chat();
RA-TA-TATA
По итогу работать через JsonConvert?
Да, он сам подтянет конвертер по типу из атрибута
источник

LU

Lars Ulrich in var chat = new Chat();
RA-TA-TATA
По итогу работать через JsonConvert?
ну да. он уже сам в атрибуте все поймет
источник

LU

Lars Ulrich in var chat = new Chat();
на свое ебанутое поле вешаешь атрибут с конвертером, который будет пуущен в работу при десерииализации твоего объекта
источник

R

RA-TA-TATA in var chat = new Chat();
еще такой вопросик, у JsonConvert.DeserializeObject()
Есть что-то типо индексов как у JObject?
источник