Saya memiliki permintaan json dari api di excel dan saya ingin mengonversinya.

Inilah yang saya dapatkan:

{data:[{price: 3, amount:7},{price: 21, amount:16},{price: 18, amount:4}]}

Saya ingin mengubah ini menjadi:

{data:[[3,7],[21,16],[18,4]]}

Bagaimana saya bisa menangani ini?

Apa yang saya lakukan di sini maaf tentang itu:

text = DownloadTextFile("www../api/etc")
Set json = JsonConverter.ParseJson(text)

Lalu saya ingin mengulang;

For j = 0 To 100
Range("h" & j) = json(data)(j)(1)
Next j

Tapi Range("h" & j) = json(data)(j)(1) tentu saja tidak berfungsi, karena ini bukan array. Itu sebabnya saya ingin mengubahnya. Saya tidak tahu bagaimana saya bisa mengulang hash dan mendapatkan data harga dan jumlah.

Saya akan menggunakan perpustakaan dan menulis di sini jika saya menemukan masalah, terima kasih!

0
Shalafister's 12 Januari 2018, 22:48

1 menjawab

Jawaban Terbaik
Sub Tester()

    Dim newJ, col, col2
    Dim j, o

    Set j = JsonConverter.ParseJson( _
       "{'data':[{'price': 3, 'amount':7},{'price': 21, 'amount':16},{'price': 18, 'amount':4}]}")

    Set col = New Collection

    For Each o In j("data")
        Set col2 = New Collection
        col2.Add o("price")
        col2.Add o("amount")
        col.Add col2
    Next o

    Set newJ = CreateObject("scripting.dictionary")
    newJ.Add "data", col

    Debug.Print JsonConverter.ConvertToJson(newJ)
    '>> {"data":[[3,7],[21,16],[18,4]]}

End Sub
1
Tim Williams 12 Januari 2018, 20:32