首页 > 解决方案 > 如何让 JSON.Stringify 正确解析变量?

问题描述

我想不通:-(我的客户正在做一个ajax httppost,我需要发送以下内容:

  private doSaveQuery(queryName: string): void {

    const info = {};
    info['userName'] = 'admin';
    info['userQueryName'] = queryName;
    ...

当它被字符串化时,它变成这样:

{"userName":"admin",
 "userQueryName":{"queryName":"MyName"}
}

为什么它需要我的变量名“queryName”并将其作为键添加到我的值中??????

我该如何做到这一点?

{"userName":"admin",
  "userQueryName":"MyName"
}

我知道这很简单,所以请原谅我的无知:-)

谢谢!

标签: javascriptjsontypescript

解决方案


当您对对象进行编码时,它看起来queryName实际上是一个看起来像{queryName: 'MyName'}.

要解决这个问题,您应该确保它queryName只是 string MyName

info['userQueryName'] = 'MyName'

换句话说,queryName不是你想的那样。

您当前的实施示例:

const queryName = {queryName: "MyName"}
const info = {
  userName: "admin",
  userQueryName: queryName
}
console.log(JSON.stringify(info))

您应该queryName只更改为字符串:

const queryName = "MyName"
const info = {
  userName: "admin",
  userQueryName: queryName
}
console.log(JSON.stringify(info))

如果你不能这样做,那么你可以从属性中构建信息:

const queryName = {queryName: "MyName"}
const info = {
  userName: "admin",
  userQueryName: queryName.queryName
}
console.log(JSON.stringify(info))


推荐阅读