Полностью преобразовать файл .csv в данные Json и отфильтровать данные JSON

for (int i = 1; i < lines.Length; i++) {
  var objResult = new Dictionary<string, string>();

  for (int j = 0; j < props.Length; j++) {
    objResult.Add(props[j], csv[i][j]);
    listObjResult.Add(objResult);
  }

  string FINALJSON = JsonConvert.SerializeObject(listObjResult);
}

Я сделал преобразование из csv в json. Вывод данных json находится в FINALJSON. Теперь из FINALJSON мне нужно получить только необходимые поля.


Это мои данные:

[{"Ccsv":"S124","Profit":"1240025","Cost_Center_Code":"124002503","Description":"test","Status":"","Responsible_Person_Owner":"20041882"},{"Ccsv":"S136","Profit":"1360007","Cost_Center_Code":"136000799","Description":"Default Payroll","Status":"","Responsible_Person_Owner":"SSC"},{"Ccsv":"S800","Profit":"8000001","Cost_Center_Code":"800000201","Description":"SercoCaledonianSl2","Status":"","Responsible_Person_Owner":"20120730"},{"Ccsv":"s802","Profit":"8000002","Cost_Center_Code":"8.00E+58","Description":"sdfergfertxzfcx","Status":"","Responsible_Person_Owner":"3641212"}\]

Мне нужно получить только столбцы csv и profit.

Если вам нужны только ccsv и прибыль, почему вы не фильтруете это перед сериализацией в JSON? Кажется, что много потраченных усилий.

Llama 10.04.2019 09:48

Спасибо. Но если в будущем мне понадобятся другие столбцы, я не могу понять. поэтому сначала мне нужно преобразовать все в json и отфильтровать. В надежде помочь мне

Tej 10.04.2019 09:52

я преобразовал .csv в данные json. но я хочу знать, как фильтровать данные json, присутствующие в FINALJSON, и получать вывод только из двух столбцов.

Tej 10.04.2019 09:54

Итак, вы где-то сохраняете JSON, который был преобразован из CSV, а затем фильтруете его, чтобы создать второй документ JSON только с двумя свойствами?

Llama 10.04.2019 09:57

да. я сохраняю этот результат в FINALJSON. Теперь мне нужно отфильтровать данные FINALJSON и получить необходимые свойства во втором результате.

Tej 10.04.2019 09:59

@Tej, попробуйте мой ответ, чтобы больше не получать ошибку, с которой вы столкнулись сейчас, и дайте мне знать :)

er-sho 10.04.2019 10:31

@er-sho обязательно постараюсь и дам вам знать.

Tej 10.04.2019 10:33
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
7
369
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Я надеюсь, что это сработает для вас.

JObject obj = JObject.Parse(json);
var ccsv=obj.SelectToken("Ccsv");
var profit=obj.SelectToken("Profit");

Спасибо большое . я постараюсь и дам вам знать

Tej 10.04.2019 10:05

Ошибка чтения Jobject из jsonreader. текущий элемент jsonreader не является объектом: начальный массив", строка 1, позиция 1 ...................... я получил эту ошибку. что мне теперь делать

Tej 10.04.2019 10:28
Ответ принят как подходящий

Кажется, что ваш JSON представляет собой массив объектов, и вы хотите получить только два поля из него, чтобы вы могли попробовать код ниже,

string json = FINALJSON;

JArray jArray = JArray.Parse(json);

var result = jArray.Select(x => new { Ccsv = x["Ccsv"], Profit = x["Profit"] }).ToList();

JArray outputJArray = JArray.FromObject(result);

//---------------Print result to console---------------

Console.WriteLine(outputJArray.ToString());

Примечание: Вам необходимо добавить пакет nuget newtonsoft.json из консоли диспетчера пакетов, а затем импортировать пространство имен using Newtonsoft.Json.Linq; в вашу программу.

Выход:

Спасибо. Я попробую. Но дело в том, что окончательный результат также будет в формате пары JSON KEY VALUE.

Tej 10.04.2019 10:32

@Tej, просмотрите раздел Изменить 1 в ответе.

er-sho 10.04.2019 10:37

Конечно, я постараюсь сообщить вам как можно скорее

Tej 10.04.2019 10:42

@Tej, я обновил свой ответ, чтобы он более точно соответствовал вашим потребностям. с удаленным другим несвязанным кодом. :)

er-sho 10.04.2019 11:23

Еще одна вещь, которую я использую веб-приложение, окончательные данные должны храниться в файле, а не отображаться на консоли.

Tej 10.04.2019 12:32

Откуда взялся этот json, потому что опубликованный json, о котором идет речь, не соответствует вашему выше прокомментированному json.

er-sho 10.04.2019 12:35

Попробуйте это для нового json => var result = jArray.Select(x => new { Ccsv = x["Company_Code"], Profit = x["Profit_center"] }).ToList();

er-sho 10.04.2019 12:38

Чтобы сохранить вывод json в файл при подаче => File.WriteAllText("Output file path on server", outputJArray.ToString());

er-sho 10.04.2019 12:39

окончательный код, который вы дали, работает нормально. Спасибо большое #Чемпион

Tej 10.04.2019 13:01

Пожалуйста, отметьте галочкой слева от ответа, чтобы он стал зеленым

er-sho 10.04.2019 13:02

закомментированный код появляется во время преобразования .csv в json и до сериализации. во всяком случае до работает нормально. я буду пинговать, если что.

Tej 10.04.2019 13:05

Другие вопросы по теме