JSON 输入意外结束 - 使用 putState() 时 Hyperledger Fabric
Unexpected end of JSON input - Hyperledger Fabric while using putState()
async changeCarOwner(ctx, carNumber, newOwner) {
const carAsBytes = await ctx.stub.getState(carNumber);
if (!carAsBytes || carAsBytes.length === 0) {
throw new Error(`${carNumber} does not exist`);
}
const car = JSON.parse(carAsBytes.toString());
car.owner = newOwner
await ctx.stub.putState(carNumber, Buffer.from(JSON.stringify(car)));
}
}
我不断收到错误消息:JSON 输入意外结束。为什么?我正在尝试使用上面的代码更新 couchDb 中现有的键值对。
此错误发生在这一行:
const car = JSON.parse(carAsBytes.toString());
这是因为 carAsBytes.toString()
没有计算出格式正确的 JSON 字符串。您显示的代码看起来不错,但错误来自您代码中的其他地方。
调试提示:使用debugger statement检查错误行前的变量,只需在其前添加console.log(carAsBytes.toString())
即可。
async changeCarOwner(ctx, carNumber, newOwner) {
const carAsBytes = await ctx.stub.getState(carNumber);
if (!carAsBytes || carAsBytes.length === 0) {
throw new Error(`${carNumber} does not exist`);
}
const car = JSON.parse(carAsBytes.toString());
car.owner = newOwner
await ctx.stub.putState(carNumber, Buffer.from(JSON.stringify(car)));
}
}
我不断收到错误消息:JSON 输入意外结束。为什么?我正在尝试使用上面的代码更新 couchDb 中现有的键值对。
此错误发生在这一行:
const car = JSON.parse(carAsBytes.toString());
这是因为 carAsBytes.toString()
没有计算出格式正确的 JSON 字符串。您显示的代码看起来不错,但错误来自您代码中的其他地方。
调试提示:使用debugger statement检查错误行前的变量,只需在其前添加console.log(carAsBytes.toString())
即可。