【问题标题】:Convert json single node value STRING to OBJECT using Angularjs使用Angularjs将json单节点值STRING转换为OBJECT
【发布时间】:2016-06-17 06:19:55
【问题描述】:

如何使用Angularjsjson 节点值STRING 转换为OBJECT。我从服务器 values 得到响应为 string format。这里一个节点 FCLASSName 和 ' "[{ .... }]" ' 它的 value 但值是字符串而不是数组,需要删除第一个 (") 和最后一个 (") 字符和 (/) 所有斜线在 value 内用于转换数组和对象' [{ ... }] '。

JSON:

{"FARE":[{
    "ARRV_DATE": "2016-06-25",
    "ARRV_TIME": "14:15",
    "FCLASS ": "[{\"TYPE\":\"UPPER\",\"CL\":\"M2\"},{\"TYPE\":\"UPPER\",\"CL\":\"Y2\"},{\"TYPE\":\"LOWER\",\"CL\":\"S2\"}]",
    "SEAT": 0,
    },
    {
    "ARRV_DATE": "2016-06-25",
    "ARRV_TIME": "16:20",
    "FCLASS ": "[{\"TYPE\":\"UPPER\",\"CL\":\"J2\"},{\"TYPE\":\"UPPER\",\"CL\":\"C2\"},{\"TYPE\":\"LOWER\",\"CL\":\"D2\"}]",
    "SEAT": 0,
    },
    {
    "ARRV_DATE": "2016-06-25",
    "ARRV_TIME": "19:10",
    "FCLASS ": "[{\"TYPE\":\"UPPER\",\"CL\":\"H2\"},{\"TYPE\":\"UPPER\",\"CL\":\"C2\"},{\"TYPE\":\"LOWER\",\"CL\":\"O2\"}]",
    "SEAT": 0,
    }
}]

ng-repeat 没有循环这个值,因为它只需要OBJECT

HTML(angularjs)

.........
<div class="col-sm-2" ng-repeat="n in f.FCLASS">
   <div>{{n.TYPE}}-{{n.CL}}</div>
</div>
.........

任何想法。如何解决这个问题?谢谢

【问题讨论】:

    标签: javascript angularjs json angularjs-ng-repeat ng-repeat


    【解决方案1】:

    尝试使用 JSON.parse 解析 json 字符串。

    试试这个,

    $scope.f.FCLASS=JSON.parse(YOUR_OBJECT.FCLASS);
    

    【讨论】:

      【解决方案2】:

      我建议首先使用字符串化值

      JSON.stringify(YOUR_OBJECT.FCLASS);
      

      然后用

      转换成JSON对象
      JSON.parse(YOUR_OBJECT.FCLASS);
      

      因为无论对象或数组如何,字符串化都会转换为字符串。即使对象值中有 Array,它也会按预期执行。

      问候

      【讨论】:

      • 实际上来自您的解决方案。我只能通过定义数组位置来解析单个对象值。像 console.log(JSON.stringify(fare[0].FCLASS));
      • 在这种情况下,我建议您创建过滤器/指令并将 JSON 解析的数据直接转换为 HTML。
      • 我可以这样做吗
        {x.Cl}}
      • 不,所以我建议你使用过滤器或指令。
      猜你喜欢
      • 2015-01-10
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 2013-04-24
      • 2021-12-30
      • 2022-01-17
      • 2018-07-16
      • 1970-01-01
      相关资源
      最近更新 更多