JSON int key выпускает данные e2e (недопустимый символ '1' ищет начало строки ключа объекта) - PullRequest
0 голосов
/ 07 мая 2018

Мое приложение использует аэроспайк для хранения карты в одной из корзин, Я использую endly для тестирования e2e, которое использует JSON для представления данных:

Как заполнить хранилище данных JSON, где ключ должен быть int? Так как 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"
  }
]

1 Ответ

0 голосов
/ 08 мая 2018

В вашем примере файл @ mydaaset.json является недействительным JSON, поэтому вы получаете

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

ошибка разбора

Для предварительного заполнения ваших тестовых данных варианта использования в аэроспайке с помощью карты [int] int bin вы можете использовать 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"
  }
]
...