webmail123 Ответов: 1

Скопируйте элемент JSON в другой список


Я пытаюсь скопировать элемент JSON в другой список. Мой код в формате JSON RootObject в C#.Net выглядит следующим образом:

public class RootObject
    {
        public string epc { get; set; }
        public string tagId { get; set; }
        public object jobId { get; set; }
        public string fromZone { get; set; }
        public object fromFloor { get; set; }
        public string toZone { get; set; }
        public object toFloor { get; set; }
        public object fromFacility { get; set; }
        public string toFacility { get; set; }
        public object fromX { get; set; }
        public object fromY { get; set; }
        public object toX { get; set; }
        public object toY { get; set; }
        public DateTime observationTime { get; set; }
    }


Что я уже пробовал:

А это мой код для преобразования данных в JSON с помощью newtonsoft

var settings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };
var jItem = JsonConvert.DeserializeObject<RootObject>(messege, settings);


Теперь моя цель состоит в том, чтобы создать список типов данных RootObject и скопировать элементы JSON в список, чтобы я мог использовать тот же список для сохранения данных в базе данных. Я использую MS SQL Server.

На самом деле, я получаю кучу данных через каждые 15 секунд интервала из очереди AMQP. Эти данные представлены в виде строки JSON. Поэтому я хочу складывать данные в список каждые 15 секунд, а затем передавать тот же список в базу данных для хранения данных. Поэтому моя логика заключается в том, чтобы скопировать строку JSON в список и передать тот же список в базу данных.

Karthik_Mahalingam

так в чем же проблема?
добавьте объект json в список RootObject

webmail123

@Karthik: проблема в том, что я хочу скопировать объект JSON в новый список.

1 Ответов

Рейтинг:
10

Karthik_Mahalingam

Цитата:
@Karthik: проблема в том, что я хочу скопировать объект JSON в новый список.

попробовать это
string[] messages = GetMessages(); // get the messages
            List<RootObject> list = new List<RootObject>();
            var settings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };
            foreach (string msg in messages)
            {
                RootObject obj = JsonConvert.DeserializeObject<RootObject>(message, settings);
                list.Add(obj);
            }


webmail123

@Картик. Большое вам спасибо за ответ. Это частично сработало. Теперь вот что происходит. Моя строка сообщения такова "{"epc":"85100018","tagId":"","jobId":null,"fromZone":"FACILITY","fromFloor":null,"toZone":"FACILITY","toFloor":null,"fromFacility":"Labs","toFacility":"Labs","fromX":1.90,"fromY":-5.71,"toX":2.42,"toY":-5.44,"observationTime":"2018-01-11T15:31:30.092 Z"}"

Но когда я выполняю упомянутый выше код, я получаю дубликаты записей в списке. В конце шага мой список насчитывал 253 человека. И все элементы одинаковы в списке.

Karthik_Mahalingam

Проверить это
удаление дубликатов объектов в списке на основе его свойств[^]
дайте знать, если это поможет

webmail123

@Картик. Большое тебе спасибо, Картик. На самом деле, я исключил петлю, и это сработало.

Karthik_Mahalingam

добро пожаловать :)