Итак, я уже задал вопрос, который был успешно ответил (здесь: Parsing JSON (US BLS) in VBA from MS Access)Синтаксический JSON (US BLS) в VBA из MS Access, обновление
Новый ответ я получаю, что отличается от оригинала вопрос заключается в том, что Я добавил запрос на захват расчетов. Я попробовал добавить в качестве словаря для коллекции и скриптинга, например сноски, но я вижу, что формат не совсем то же самое, поэтому я думаю, что это приводит к ошибке, когда я пытаюсь собрать изменения 1,3,6 и 12 месяцев. Я хотел бы иметь некоторую помощь выяснить, как захватить эти изменения в следующей реакции:
{
"status":"REQUEST_SUCCEEDED",
"responseTime":64,
"message":["BLS does not produce net change calculations for Series WPU381103"],
"Results":
{
"series":
[
{
"seriesID":"WPU381103",
"data":
[
{
"year":"2014",
"period":"M12",
"periodName":"December",
"value":"98.9",
"footnotes":
[
{
"code":"P",
"text":"Preliminary. All indexes are subject to revision four months after original publication."
}
],
"calculations":
{
"net_changes":{},
"pct_changes":
{
"1":"0.0",
"3":"0.1",
"6":"0.0",
"12":"-0.7"
}
}
},
{
"year":"2014",
"period":"M11",
"periodName":"November",
"value":"98.9",
"footnotes":
[
{
"code":"P",
"text":"Preliminary. All indexes are subject to revision four months after original publication."
}
],
"calculations":
{
"net_changes":{},
"pct_changes":
{
"1":"0.1",
"3":"-0.4",
"6":"0.0",
"12":"-0.7"
}
}
},...
Вы заметите, что есть часть теперь, говорит, расчеты, и отделяю значение от чистых изменений, а также изменения процента , Я пытаюсь получить процентные изменения в элементах данных «1», «3», «6» и «12».
Вот текущий код, который я не нашел вычислений, но захватывает все остальные данные:
response = http.responseText
jsonSource = response
I = 0
Dim jsonData As Scripting.Dictionary
Set jsonData = JSON.parse(jsonSource)
Dim responseTime As String
responseTime = jsonData("responseTime")
Dim results As Scripting.Dictionary
On Error Resume Next
Set results = jsonData("Results")
Dim series As Collection
On Error Resume Next
Set series = results("series")
Dim seriesItem As Scripting.Dictionary
For Each seriesItem In series
Dim seriesId As String
seriesId = seriesItem("seriesID")
Dim Data As Collection
Set Data = seriesItem("data")
Dim dataItem As Scripting.Dictionary
For Each dataItem In Data
Dim Year As String
Year = dataItem("year")
I = 1 + I
Dim Period As String
Period = dataItem("period")
Dim periodName As String
periodName = dataItem("periodName")
Dim Value As String
Value = dataItem("value")
Dim footnotes As Collection
Set footnotes = dataItem("footnotes")
Dim footnotesItem As Scripting.Dictionary
For Each footnotesItem In footnotes
Dim Code As String
Code = footnotesItem("code")
Dim text As String
text = footnotesItem("text")
Next footnotesItem
Next dataItem
Next seriesItem
Спасибо @johnwait, это было очень хорошо объяснено и подробно, дал мне много вариантов, и улучшилось мое понимание.Я смог использовать этот код и даже внести некоторые небольшие изменения в соответствие с представлением данных на основе знаний, которые вы указали. – Dm3k1