【问题标题】:Converting string to an object将字符串转换为对象
【发布时间】:2014-01-14 18:47:27
【问题描述】:

以下是我正在编写的代码,我的目标是将字符串转换为实际对象,并仅显示来自 ajax 调用的数据。但似乎字符串值不能这样工作。

var string = "first: 'George', last: 'Smith'";

$.ajax({
   type: 'POST',
   url: 'ajax.php',
   data: {string}
}).done(data){
   alert(data);
}

【问题讨论】:

  • 你是怎么得到这个字符串的?
  • json字符串格式无效....可以分享一下是怎么创建的
  • 它是如何创建的呢?这是我的全部代码,我只是想将字符串转换为对象
  • @user3135626 我的意思是你是怎么得到这个字符串的?它总是有这种格式?

标签: javascript jquery ajax string object


【解决方案1】:

试试这个:

data: Function('return {' + string + '};')()

【讨论】:

  • 是的,这回答了我的问题。谢谢!
  • @user3135626 所以也可以看看JSON.parse,比如JSON.parse('{'+string+'}')
  • @user3135626 我同意 Grundy 的观点,但我选择了Function() 方式,因为输入不是有效的 json 字符串。
  • @wared 是的,格式未知的字符串和带函数的代码也不适用于所有路径
  • @Grundy 嗯,从目前提供的信息很难预测,我完全同意你的观点:) 然后,我们还可以讨论由于动态代码评估导致的安全性不足。
【解决方案2】:

你能试试这个吗:

var Params= {first: 'George', last: 'Smith'};

$.ajax({
    type: "Post",
                dataType: 'json',
                url: 'ajax.php',
                data: JSON.stringify(Params),
                contentType: 'application/json',}).done(data){
   alert(data);
}

【讨论】:

  • @user3135626..你能清楚地更新你的问题吗//
【解决方案3】:

你要找的是:

  1. 执行 AJAX 调用并接收数据。
  2. 接收到的数据会是一个字符串,但是格式特殊,很多用的是Json。
  3. 您将“手动”创建对象。
  4. 然后,您将使用 Json 值填充对象的字段。

网上有很多例子。

【讨论】:

    猜你喜欢
    • 2011-08-02
    • 2016-06-10
    • 2022-01-20
    • 1970-01-01
    相关资源
    最近更新 更多