如何在角度视图中从文本中读取已解析的JSON

时间:2016-10-28 04:28:02

标签: javascript angularjs json

我需要从我提取的数据库中读取以下JSON文本,下面是我的示例代码:

{{questionData1[0].qst_cnt_options[0].left}}

qst_cnt_options中的真实数据是:

[{left:'Benda Hidup',right:'Benda Mati'}] //Fetched from database and as text

当我试图回读时,仅输出 [。如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

由于数据库中的提取值是简单文本,因此使用JSON.parse解析为json对象并检索它。

[{left:'Benda Hidup',right:'Benda Mati'}]这是一个字符串,因此将[作为第一个值返回。

<强>方法一: 只需从控制器返回JSON解析值

在您的控制器中:

app.controller('myCtrl',function($scope){
    $scope.qst_cnt_options =  $scope.questionData1[0].JSON.parse(qst_cnt_options)
});

在您看来:

<强> {{qst_cnt_options[0].left}}

<强>方法2:

app.controller('myCtrl',function($scope){
    $scope.qst_cnt_options =  questionData1[0].JSON.parse(qst_cnt_options)

    $scope.parJson = function (json) {
            return JSON.parse(json)[0];
    }
});

查看:

{{qst_cnt_options.parJson(qst_cnt_options.qst_cnt_options)}}

答案 1 :(得分:0)

更新:用双引号封装字符串(包括左,右)。这应该解决。

由于around []可能会迫使解析器将其视为数组,因此看起来您正在取回的内容并未解析为正确的JSON。

尝试删除[]并查看是否有效

我对输入进行了进一步的检查,根据JSON验证器,你应该用双引号封装你的字符串。左右限定符没有引号。那可能是你的问题。

在此尝试在线验证器https://jsonformatter.curiousconcept.com/