【问题标题】:Extracting data from JSON.stringify从 JSON.stringify 中提取数据
【发布时间】:2015-05-25 05:19:49
【问题描述】:

我从 JSON.stringify 收到的数据如下所示。

 {"action":"deleted","data":{"latitude":9,"longititude":8,"_type":"locationcurrent","id":49,"user":"7"}}

但我似乎无法获取对象内部的数据。主要是我想要行动的价值,“已删除”,以及我的数据的价值,比如 id:“49”。但是我在使用这个方程来尝试获取数据时遇到了问题。

 function replacer(key, value) {
            if (typeof value === "string") {
                return value;
            }
            return undefined;
        }

        var jsonString = JSON.stringify(message, replacer);
        console.log(jsonString);

我从中得到的只是,

 data:{}

【问题讨论】:

  • 我对你想要做什么感到困惑。但是,如果您要关闭 JSON,则比您想要的 var obj = JSON.parse(message) 如果您正在创建一个 JSON 字符串(正如您在上面所做的那样)并想要访问属性,那么它与 var obj = JSON.parse(jsonString); 相同,那么 var actionValue = obj.action;
  • 您不需要恢复器来获取数据。实际上,如果您想将数据用作离散片段,则根本不应该 stringify() 它。 message.actionmessage.data.id 似乎是你想要的。

标签: javascript json object stringify


【解决方案1】:

您的问题是传递给replacer 的第一个value 是对象本身。您将此对象替换为undefined,因为它不是string 类型。

你需要这样改变它:

function replacer(key, value) {
    if ( key === '' || typeof value === "string") {
        return value;
    }
    return undefined;
}

但正如Phatjam98 所说,以这种方式过滤掉一个值没有多大意义。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-31
    • 2016-03-10
    • 1970-01-01
    • 2011-04-18
    • 1970-01-01
    • 2020-04-02
    相关资源
    最近更新 更多