javascript - 将部分 JSON 字符串输出转换为 bool 值

标签 javascript json

有没有办法将 JSON 字符串的某些部分转换为 bool 值?

我的 JSON 字符串示例:

{
    "file_id": { 
        "width": "560", 
        "height": "270", 
        "esc_button": "1", 
        "overlay_close": "1", 
        "overlay_opacity": "1" 
    }
}

如果这是我的个人项目,我相信我只会将 bool 值的输出转换为 true/false 字符串,而不是 1 和 0,但因为它不是我想知道是否有一种方法可以设置 JSON 字符串中的哪些属性是 bool 值。在此示例中, bool 值应为:esc_button,overlay_close,但不是 overlay_opacity...

既然这是 JavaScript 项目,我想知道我的选择是什么,有什么简单的方法可以做到这一点吗?这个 JSON 字符串还有更多设置,我刚刚发布了其中的一部分。设置根据点击事件变化(不同的file_id ===不同的设置)

编辑:

只是想我可以使用parseInt(settings[file_id].esc_button)来获取 bool 值,但我真的必须一直使用它吗?可能还有其他我不知道的方法。

最佳答案

JSON 只是一种数据格式。如果您正在使用的数据选择传递字符串 "0",您将得到字符串 "0",而不是 false

如果“0”不是您想要的程序,您需要稍微处理一下数据。

// for example
var processData = function(jsonString) {
  var data = JSON.parse(jsonString);
  data.esc_button = (data.esc_button == "1");
  return data;
};

JSON.parse() 本身没有提供执行此操作的方法。它只是对源中的数据进行解码。如果您需要不同的东西,您需要翻译。

<小时/>

理想情况下,您应该让数据源以更好的格式提供此数据。如果它具有真正的 bool 文字值,则您根本不必进行任何翻译。

{
    "file_id": { 
        "width": 560, 
        "height": 270, 
        "esc_button": true, 
        "overlay_close": false, 
        "overlay_opacity": 1 
    }
}

如果您的 JSON 看起来像这样,您只需解析它即可完成。通过删除宽度和高度中的引号,这些现在是不需要翻译即可在其他数学中使用的数值。通过报告 bool 值的 truefalse ,这些值将被解析为 bool 文字,而不是字符串。这一切都正常。

这也解决了歧义。在原始 JSON 中,您有 "1" 代表 true"1" 代表 opacity 值,我假设预期是一个从 0 到 1 的数字。现在您可以查看原始 JSON 数据并查看差异。

关于javascript - 将部分 JSON 字符串输出转换为 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26287140/

相关文章:

javascript - 捕获方括号之间开始和结束空格的正则表达式

json - 在 Go 中将映射转换为字符串

javascript - 标签未在带有 Grails 的 Chart.js 中显示

javascript - 从 iframe prependTo 最接近指定的父 div

PHP服务器从Android应用程序接收数据

android - Json 从 URL 在 android 中解析

javascript - 从Java脚本访问没有表ID的外部网页HTML表并转换为JSON

Javascript:如何使用 ajax 请求在 for 循环内以正确的顺序将对象插入数组

JavaScript (Node.js)——从 MySQL 列中检索落后一天的日期

javascript - 当我使用间接选择在 dojo 中的增强网格中单击一行时,如何自动选中复选框