在typescript中访问Json数据

时间:2016-11-07 04:44:16

标签: json facebook-graph-api

我有来自Facebook api的JSON对象,其中包含公共页面中的所有帖子。我正在使用类型脚本来抓取对象并将其分配给变量。但我无法弄清楚如何访问这些字段。如何在类型脚本中访问JSON数据?

这是我的JSON文件: https://graph.facebook.com/1650393515218783?fields=posts&access_token=EAAN3TCkzCxsBACdSQIu3KDiORivp0eEeQWNMBu1aT8TnEWYEqQhblcl4IZAykwIwDFF5v6LB8BYNyOXYWrRhE7ildN2lnXFqwpnv7Bzq3Kh2ZB5FZBAMxrbpNEX2znds1G86AurOZAD0R1W3ec1ZBhwr8LNZAZCyGjgtMGbiZA44XwZDZD

这是我的功能:

<script type="text/javascript">
     $(function(){
       $(document).on("click",".supp_delete_link",function(){//change this line on event bind
         debugger;
         var element = $(this);
         var del_id = element.attr("id");
         console.log(del_id);
         var info = del_id;
     if(confirm("Are you sure you want to delete this?"))
     {
      $.ajax({
        type: "GET",
        url: "supplierdelete"+'/'+info,
        data: info,
        success: function(){
      }
     });
       $(this).parents(".show").animate({ backgroundColor: "#003" }, "slow")
       .animate({ opacity: "hide" }, "slow");
      }
     return false;
     });
     });

1 个答案:

答案 0 :(得分:0)

this.posts.data[0].message将在您回复的回复中向您提供第一个故事的消息。

但您可能希望使用any以外的类型对响应建模,在这种情况下,您可以定义以下内容:

interface FbApiResponse {
    posts: {
        id: string;
        data: FBResponseElement;
    }
}

interface FbResponseElement {
    message?: string;
    story?: string;
    created_time: string;
    id: string;
}

尽管如此,我根据您的数据猜测这一点。我实际上并不知道您正在使用的API是什么,它的响应是什么样的,或者它们应该被命名为什么。

然后,您可以在调用JSON.parse时使用类型断言:

JSON.parse(data._body) as FbApiResponse