2

「anyOf」キーワードを使用してスキーマに有効な JSON の例を誰かが挙げることができるかどうか疑問に思っていましたか? Pythonで有効なJSONを出力するコードを書き込もうとしています。

たとえば、次のようなスキーマがあるとします。

"anyOf": {
       "category_0": {
                "main": { "enum": ["learning"]},
                "sub":  { "enum": ["ADD/ADHD", "dyslexia", "general learning disability", "language disorder", "intellectual giftedness", "other"]}
                         },
       "category_1": {
                "main": { "enum": ["mental"]},
                "sub":  { "enum": ["down's syndrome", "asperger's syndrome", "autism", "other"]}
                 },
       "category_2": {
                "main": { "enum": ["behavioral"]}
                 },
       "category_3": {
                "main": { "enum": ["medical"]},
                "sub":  { "enum": ["diabetes", "allergies", "eating disorders", "chronic illness", "other"]}
                 },
       "category_4": {
                "main": { "enum": ["physical"]},
                "sub":  { "enum": ["blind", "deaf", "cerebral palsy", "other"]}
                    }
                 }

どの JSON が有効でしょうか?

PythonでJSONを出力するために使用したコードは次のとおりです。

main = row.get('main', [])
sub = row.get('sub',[])
category = dict(main = main, sub=sub)
special_needs = category
4

1 に答える 1

3

文字列を最も外側の配列またはオブジェクトの外に置くことはできないため、JSON は有効ではありません。

最低限有効な JSON は次のようになります{}。ここに示したものをその中に入れることで、JSON を有効にすることができます。

{
  "anyOf": {
    "category_0": {
      "main": {
        "enum": [
          "learning"
        ]
      },
      "sub": {
        "enum": [
          "ADD/ADHD",
          "dyslexia",
          "general learning disability",
          "language disorder",
          "intellectual giftedness",
          "other"
        ]
      }
    },
    "category_1": {
      "main": {
        "enum": [
          "mental"
        ]
      },
      "sub": {
        "enum": [
          "down's syndrome",
          "asperger's syndrome",
          "autism",
          "other"
        ]
      }
    },
    "category_2": {
      "main": {
        "enum": [
          "behavioral"
        ]
      }
    },
    "category_3": {
      "main": {
        "enum": [
          "medical"
        ]
      },
      "sub": {
        "enum": [
          "diabetes",
          "allergies",
          "eating disorders",
          "chronic illness",
          "other"
        ]
      }
    },
    "category_4": {
      "main": {
        "enum": [
          "physical"
        ]
      },
      "sub": {
        "enum": [
          "blind",
          "deaf",
          "cerebral palsy",
          "other"
        ]
      }
    }
  }
}
于 2013-07-19T21:17:42.160 に答える