簡體   English   中英

嵌套 JSON - 添加收藏

[英]Nested JSON - Add a Collection

用戶https://stackoverflow.com/users/478884/tim-williams已經提供了一個很好的腳本來為卡爾達諾區塊鏈制定政策 json

但是要調整現有腳本,我想嘗試將 json 的元素分組到一個集合中。

屬性應該分組到一個特征:{[]} 集合

Sub live2_json()
Dim jsonFileObject As New FileSystemObject
Dim jsonFileExport As TextStream
Dim i, count As Long
Dim root As Dictionary, k As Dictionary, a As Long

Dim tokenname, name, id, description, madeof, rarity, publisher, series, value, ipfshash, bg, plate, cutlery, napkin, temperature, roommates As String

Dim max_count As Double
While ThisWorkbook.Sheets("Tokens").Cells(2 + i, 1).value <> ""
    max_count = 0
    max_count = ThisWorkbook.Sheets("Tokens").Cells(2 + i, 1).value
    
    tokenname = ThisWorkbook.Sheets("Tokens").Cells(2 + i, 2).value

    Set root = New Dictionary
    Set k = New Dictionary
    Set properties = New Dictionary
    set props = New Collection
    root.Add "721", k
    k.Add "policy", New Dictionary
    
    
    Set k = k("policy")
   
    For count = 0 To max_count - 1
        'Tokenname
        tokenname = ThisWorkbook.Sheets(tokenname).Cells(2 + count, 2).value
        k.Add tokenname, New Dictionary

        With k(tokenname)
            id = ThisWorkbook.Sheets(tokenname).Cells(2 + count, 4).value
            'Name
            name = ThisWorkbook.Sheets(tokenname).Cells(2 + count, 3).value

            .Add "Name", name
            .Add "Id", id

            
        End With

        k.Add tokenname, properties
        properties.Add props
        props.Add "prop1", "blue"
        props.Add "prop2", "red"
    Next
    
    
    i = i + 1000
Wend

    Set jsonFileExport = jsonFileObject.CreateTextFile("C:\1_DEV\BIGjsonExample.json", True)
    jsonFileExport.WriteLine (JsonConverter.ConvertToJson(root, Whitespace:=2))

不幸的是,這個集合被添加到 json 的末尾而不是 tokenname 部分。 如果我將它放入 for-next 它會粉碎:/

這是我想要構建並用作參考的結構

{
  "721": {
    "1131301ad4b3cb7deaddbc8f03f77189082a5738c0167e1772233097": {
      "CardanoBits4792": {
        "image": "ipfs://ipfs/QmRXMuJQnUfrkYASW4Ur2dinTAKQ5mJ41ZspnQjxt3MRw7",
        "name": "CardanoBits #4792",
        "properties": [
          {
            "key": "type",
            "value": "human"
          }
        ],
        "tags": [
          "male",
          "brown-skin",
          "red-shirt",
          "ugly-blonde",
          "bloody"
        ]
      }
    }
  }
}

好的,我讓它缺少的部分是:

            .Add "Properties", New Collection  
        End With

            
            k(tokenname)("Properties").Add "prop1: " & "test"

        

感謝您的幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM