Javascript 传入JSON体

Javascript 传入JSON体,javascript,json,jestjs,Javascript,Json,Jestjs,我正在编写一些单元测试,收到一个错误 'SyntaxError: Unexpected token o in JSON at position 1' 我理解这是因为JSON.parse已经在读取一个对象。下面是一个代码示例 foo.js const bar = async (request)=>{ let Id = request.Id; let Handle = request.Handle; request = JSON.parse

我正在编写一些单元测试,收到一个错误

'SyntaxError: Unexpected token o in JSON at position 1' 
我理解这是因为JSON.parse已经在读取一个对象。下面是一个代码示例

foo.js

const bar = async (request)=>{
        let Id = request.Id;
        let Handle = request.Handle;
        request = JSON.parse(request.body);
        let requestMessage = request.Info;
        let subId = request.subId;
}
这是测试代码

foo.test.js

describe('foo tests', ()=>{
  test('footest', ()=>{
    let req = {
      Id: 111,
      Handle: "handle",
      body: {"Info": "into", "subId": 1010}
    };

    return foo.bar(req)

  })
})
我想知道如何创建一些东西,作为JSON.parse将接受的req传入,以便测试主体上的bar函数中的逻辑

describe('foo tests', ()=>{
  test('footest', ()=>{
    let req = {
      Id: 111,
      Handle: "handle",
      body: JSON.stringify({"Info": "into", "subId": 1010})
    };

    return foo.bar(req)

  })
})

对正在发生的事情的解释:

JSON.parse()
应该用于JSON格式的字符串。不过,您并没有传入字符串,而是传入了对象
{“Info”:“into”,“subId”:1010}
。因此,正在调用
Object.toString()


({}).toString()
返回
“[对象]”
。所以您实际上是在调用
JSON.parse(“[object]”)
。您的错误消息抱怨
“[object object]”
不是有效的JSON字符串。

JSON.stringify
it?我尝试将其与JSON.stringify一起传递,但得到了“Unexpected token u”error,如果未定义,您会看到这个错误;你通过考试了吗?给出一个。该错误通常意味着您正在尝试解析已解析的内容。是的,我已传入结果。也不确定这其中有什么是不完整的?还有什么帮助吗?我以为你指的是我尝试过的整个req对象