Я бы хотел проанализировать вывод JSON из запроса котировки акций IEX Cloud: https://cloud.iexapis.com/stable/stock/aapl/quote?token=YOUR_TOKEN_HERE
Я устал использовать Regex101 для решения этой проблемы:
https://regex101.com/r/y8i01T/1/
Вот выражение Regex, которое я пробовал: "([^"]+)":"?([^",\s]+)
Вот пример вывода котировок акций IEX Cloud для Apple:
{
"symbol":"AAPL",
"companyName":"Apple, Inc.",
"calculationPrice":"close",
"open":204.86,
"openTime":1556285400914,
"close":204.3,
"closeTime":1556308800303,
"high":205,
"low":202.12,
"latestPrice":204.3,
"latestSource":"Close",
"latestTime":"April 26, 2019",
"latestUpdate":1556308800303,
"latestVolume":18604306,
"iexRealtimePrice":204.34,
"iexRealtimeSize":48,
"iexLastUpdated":1556308799763,
"delayedPrice":204.3,
"delayedPriceTime":1556308800303,
"extendedPrice":204.46,
"extendedChange":0.16,
"extendedChangePercent":0.00078,
"extendedPriceTime":1556310657637,
"previousClose":205.28,
"change":-0.98,
"changePercent":-0.00477,
"iexMarketPercent":0.030716437366704246,
"iexVolume":571458,
"avgTotalVolume":27717780,
"iexBidPrice":0,
"iexBidSize":0,
"iexAskPrice":0,
"iexAskSize":0,
"marketCap":963331704000,
"peRatio":16.65,
"week52High":233.47,
"week52Low":142,
"ytdChange":0.29512900000000003
}
Я хочу сохранить пары ключ-значение в ответе JSON без кавычек вокруг ключа и собрать значение, начинающееся после двоеточия (:). Мне нужно исключить любые кавычки для текста, запятую в конце каждой строки и включить последнюю пару ключ-значение, которая не включает запятую в конце строки.
Например, "peRatio":16.65,
должен иметь ключ, равный peRatio
, и значение, равное 16.65
. Или другой пример, "changePercent":-0.00477,
должен иметь ключ, равный changePercent
, и значение -0.00477
. Если это текст, такой как "companyName":"Apple, Inc.",
, он должен иметь ключ, равный companyName
, и значение, равное Apple, Inc.
Кроме того, последняя запись значения ключа JSON: "ytdChange":0.29512900000000003
не имеет запятой и ее необходимо учитывать.