Реструктурируйте и добавьте пару ключ-значение в строку json во время выполнения с помощью Newtonsoft.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Реструктурируйте и добавьте пару ключ-значение в строку json во время выполнения с помощью Newtonsoft.

Сообщение Anonymous »

Я пытаюсь десериализовать следующую строку json в ряд пользовательских классов C#, указанных ниже. Я не уверен, что это правильный или лучший подход, но если не считать выполнения поиска/замены в строке json (это не очень чистый способ сделать это, должен быть лучший способ), я' Я не уверен, что еще можно сделать.

Код: Выделить всё

    "Meta Data": {
"1. Information": "Daily Prices (open, high, low, close) and Volumes",
"2. Symbol": "NVDA",
"3. Last Refreshed": "2024-12-06",
"4. Output Size": "Full size",
"5. Time Zone": "US/Eastern"
},
"Time Series (Daily)": {
"2024-12-06": {
"1. open": "144.6000",
"2. high": "145.7000",
"3. low": "141.3100",
"4. close": "142.4400",
"5. volume": "188505573"
},
"2024-12-05": {
"1. open": "145.1100",
"2. high": "146.5400",
"3. low": "143.9500",
"4. close": "145.0600",
"5. volume": "172621180"
},
// Many more entries
Но я хочу переставить и реорганизовать json, чтобы:

Код: Выделить всё

"MetaData": {
"Information": "Daily Prices (open, high, low, close) and Volumes",
"Symbol": "NVDA",
"LastRefreshed": "2024-12-06",
"OutputSize": "Full size",
"TimeZone": "US/Eastern"
},
"TimeSeries": {
"Data": {
"open": "144.6000",
"high": "145.7000",
"low": "141.3100",
"close": "142.4400",
"volume": "188505573",
"date": "2024-12-06",
"series": "Daily"
},
"Data": {
"open": "145.1100",
"high": "146.5400",
"low": "143.9500",
"close": "145.0600",
"volume": "172621180",
"date": "2024-12-05",
"series": "Daily"
}
}
Таким образом, я могу создать следующие классы

Код: Выделить всё

    public class Data
{
[JsonProperty("open")]
public string open { get; set; }

[JsonProperty("high")]
public string high { get; set; }

[JsonProperty("low")]
public string low { get; set; }

[JsonProperty("close")]
public string close { get; set; }

[JsonProperty("volume")]
public string volume { get; set; }

[JsonProperty("date")]
public string date { get; set; }

[JsonProperty("series")]
public string series { get; set; }
}

public class Root
{
[JsonProperty("MetaData")]
public MetaData MetaData { get; set; }

[JsonProperty("TimeSeries")]
public TimeSeries TimeSeries { get; set; }
}

public class TimeSeries
{
[JsonProperty("Data")]
public Data Data { get; set; }
}

public class MetaData
{
[JsonProperty("Information")]
public string Information { get; set; }

[JsonProperty("Symbol")]
public string Symbol { get; set; }

[JsonProperty("Last Refreshed")]
public string LastRefreshed { get; set; }

[JsonProperty("Output Size")]
public string OutputSize { get; set; }

[JsonProperty("Time Zone")]
public string TimeZone { get; set; }
}
Таким образом я мог бы десериализовать строку json. Я провел небольшое исследование по этому поводу, но пока не нашел того, что ищу. Я использую Newtonsoft и мне бы хотелось, чтобы ответы также использовали Newtonsoft. Но если будет что-то получше, я буду готов переключиться на другой пакет. Во-первых, я хотел бы знать, сработает ли этот подход. Если нет, мне хотелось бы узнать, как члены сообщества могли бы решить эту проблему.

Подробнее здесь: https://stackoverflow.com/questions/792 ... newtonsoft
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»