簡體   English   中英

JSON int密鑰發布數據e2e(尋找對象密鑰字符串開頭的無效字符“ 1”)

[英]JSON int key issue data e2e (invalid character '1' looking for beginning of object key string)

我的應用程序使用Aerospike將Map存儲在其中一個容器中最終用於e2e測試,該測試使用JSON進行數據表示:

如何在密鑰需要為int的情況下使用JSON填充數據存儲區? 由於json不允許使用int密鑰,因此出現以下錯誤:無效字符'1'尋找對象密鑰字符串的開頭

這是我的數據工作流程(由回歸工作流程調用)

@ data.yaml

defaults:
  datastore: db1
pipeline:
  register:
    action: dsunit:register
    config:
    driverName: aerospike
    descriptor: "tcp([host]:3000)/[namespace]"
    parameters:
      dbname: db1
      namespace: test
      host: 127.0.0.1
      port: 3000
      dateFormat: yyyy-MM-dd hh:mm:ss
  prepare:
    data:
      action: nop
      init:
      - key = data.db.mydaaset
      - mydaaset = $AsTableRecords($key)
    setup:
      action: dsunit:prepare
      URL: regression/db1/data/
      data: $mydaaset

這是我的用例級別的數據:

@ mydaaset.json

[
  {
    "Table": "myDataset",
    "Value": [{
      "id": "$id",
      "created": "$timestamp.yesterday",
      "fc":{
                1191: "$timestamp.yesterday",
                1192: "$timestamp.now",
      }
    }],
   "AutoGenerate": {
      "id": "uuid.next"
    },
    "Key": "${tagId}_myDataset"
  }
]

在您的示例中,@ mydaaset.json文件是無效的JSON,因此您得到

'invalid character '1' looking for beginning of object key string' 

解析錯誤

為了使用map [int] int bin在Aerospike中預先植入用例測試數據,可以使用AsInt UDF

@ mydaaset.json

[
  {
    "Table": "myDataset",
    "Value": [{
      "id": "$id",
      "created": "$timestamp.yesterday",
      "fc":{
                "$AsInt(1191)": "$timestamp.yesterday",
                "$AsInt(1192)": "$timestamp.now",
      }
    }],
   "AutoGenerate": {
      "id": "uuid.next"
    },
    "Key": "${tagId}_myDataset"
  }
]

暫無
暫無

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

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