1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
from __future__ import absolute_import
import json
from graphql.language import ast
from .scalars import Scalar
class JSONString(Scalar):
"""
Allows use of a JSON String for input / output from the GraphQL schema.
Use of this type is *not recommended* as you lose the benefits of having a defined, static
schema (one of the key benefits of GraphQL).
"""
@staticmethod
def serialize(dt):
return json.dumps(dt)
@staticmethod
def parse_literal(node):
if isinstance(node, ast.StringValue):
return json.loads(node.value)
@staticmethod
def parse_value(value):
return json.loads(value)
|