json - 如何在 GraphQL 中返回一个 json 字符串作为响应

标签 json graphql response

我是一个相当新的 graphQL。我的要求是在发送查询时,graphQL 应该返回如下所示的 JSON 响应

{
    user: '$',
    name: 'Josh',
    age: '30'
}

我尝试了以下方式,但没有达到结果。

var express = require('express');
var graphqlHTTP = require('express-graphql');
var { buildSchema } = require('graphql');

var schema = buildSchema(`
  type Query {
    user: String!
  }
`);


// JSON
var json = {
    user: '$',
    name: 'Josh',
    age: '30'
};

var root = {
    user: () => {
      return json;
    }
};

var app = express();
app.use('/graphql', graphqlHTTP({
  schema: schema,
  rootValue: root,
  graphiql: true,
}));
app.listen(4000);
console.log('Running a GraphQL API server at localhost:4000/graphql');

有人可以指导我哪里出错了。

提前致谢。

最佳答案

我是用下面的方法实现的:

var express = require('express');
var graphqlHTTP = require('express-graphql');
var { buildSchema } = require('graphql');
const { GraphQLJSON, GraphQLJSONObject } = require('graphql-type-json');

var schema = buildSchema(`
  scalar JSON
  type Query {
    getObject: JSON
  }
`);

var root = {
    JSON: GraphQLJSON,
    
    getObject: () => {
      return {
        name: "jshua",
        age: "30",
        place: "china",
        gender: "Male"
      }
    }
    
};

var app = express();
app.use('/graphql', graphqlHTTP({
  schema: schema,
  rootValue: root,
  graphiql: true,
}));
app.listen(4000);
console.log('Running a GraphQL API server at localhost:4000/graphql');

参见 https://github.com/taion/graphql-type-json

关于json - 如何在 GraphQL 中返回一个 json 字符串作为响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58339919/

相关文章:

ruby-on-rails-3 - Rails3 Rack 响应-未定义的方法response.body

ios - Swift - 每个 View 中的响应 View ?

android - 异步任务中的空指针错误

c# - 创建 JObject 时出现参数异常

postgresql - 检查 Hasura 中的空数组

php - 如何在php中使用ajax响应数据

java - 在 Java 中解析 JSON 字符串

jquery - 从嵌套 json 数组 jquery 中删除对象(拼接)

reactjs - RelayJS:如何通过 props 设置初始变量

graphql - 一个简单的查询,但 Graphene-Django 返回空值