javascript - 将 JSON 中的值设置为默认 JSON 项目

标签 javascript json

我使用的是 Dojo 应用程序,是否有任何特殊的 JS 解析器可以让我在 JSON 数据中使用默认值?

例如,我想将 item[1] 中的“maxHeadingLength”设置为 item[0] 中的值。

   {
    items:[
    {
        "class": "pmedia.types.PMPlatformRenderConfiguration",
        "listItemHeight": "70",
        "listItemIconHeight": "60",
        "maxDesktopItemsWithBannerP": "9",
        "maxDesktopItemsWithBannerL": "9",
        "platform": "Default",
        "maxHeadingLength":
        {
            P:300,
            L:400               
        }
      },
      {
        "class": "pmedia.types.PMPlatformRenderConfiguration",
        "listItemHeight": "70",
        "listItemIconHeight": "60",
        "platform": "IPAD",
        "maxHeadingLength": "Default"
      },

像这样的东西也很好:

“maxHeadingLength”:“this.items[0].maxHeadingLength”

谢谢

更新,看来我现在可以并且需要更好地精确说明问题了。

我想将任何字符串表达式写入纯 JSON 字符串数据(文件),当然作为字符串,并在不使用“eval”的情况下评估同一数据集中的数据。 感谢大家!

最佳答案

您可以在后端进程中执行此操作,也可以在处理 JSON 时使用前端进程。

假设您想使用 JS 在前端执行此操作,我建议首先将 items[0].maxHeadingLength 设置为 var,如下所示:

var defaultMaxHeadingLength = items[0].maxHeadingLength;

然后,当您循环 JSON 时,您可以检查 maxHeadingLength 属性是否有值并默认它,如下所示:

var item, i;

for ( i = 0; i < items.length; i++ )
{
    item    = items[ i ];

    item.maxHeadingLength   = item.maxHeadingLength ? item.maxHeadingLength : defaultMaxHeadingLength;
}

关于javascript - 将 JSON 中的值设置为默认 JSON 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8064261/

相关文章:

javascript - Bootstrap 4 使用 JSON 进行模态验证

java - 如何将 JSON 字符串存储为实体的属性

c# - 如何将值从处理程序传递到 aspx 页面作为响应

javascript - setInterval定时器功能不起作用

java - Jackson Deserializer 没有默认(无参数)构造函数

jquery - JSON 解析不可能,但 JSON Lint 说可以

javascript - 防止 JSON.parse 重新排列对象

javascript - 在按钮点击 block 上调用 JS 函数 CSS :hover

javascript - Js数组检测: number of values from php array found (grabbed from database)

javascript - Javascript 中的法语 ABC 顺序