【问题标题】:Parsing a returned JSON via a GET call通过 GET 调用解析返回的 JSON
【发布时间】:2018-06-28 00:21:01
【问题描述】:

我不太确定我错过了什么。我的 ajax 调用如下所示:

$.ajax({

                        type: 'GET',
                        url: "NaiveSentiment/commentValues",
                        contentType: "application/json; charset=utf-8",
                        datatype: "json",
                        success: function (result) {
                            $('#naiveComments').append("<ul id='newList'></ul>");
                            var keys = Object.keys(result);
                            for (var i = 0; i < keys.length; i++) {
                                var key = keys[i];
                               // console.log(key, result[key]);
                                $("#newList").append("<li>" + result[key] + "</li>");
                            }

调用的方法如下所示:

    [System.Web.Mvc.HttpGet]
    public JsonResult commentValues()
    {

        NaiveAnalysisAction naiveAnalysisAction = new NaiveAnalysisAction();
        return Json(naiveAnalysisAction.getCommentAndValues(), JsonRequestBehavior.AllowGet);

    }

和 getCommentAndvalues() 方法:

 public String getCommentAndValues()
    {
        return JsonConvert.SerializeObject(commentAndValue);  
    }

调用成功,我得到以下结果:

“文本”部分是实际的 youtube 评论,而数字实际上是我根据评论的情感价值添加的值。如您所见,所有内容都存储在字典中,该字典作为 Json 对象返回. 那本字典以文本部分为“键”,数字部分为值。

我的问题是我应该改变什么才能使用实际的 KEY(评论本身?)成功更新无序列表,我发布的方式做了一件奇怪的事情:输出实际上就像我正在阅读的解析器按每个字符。因此,它不是显示全文,而是将其分块并逐个显示每个字母

【问题讨论】:

  • return Json() 序列化您的对象。您不需要使用SerializeObject()第二次序列化它
  • 既然您使用的是 mvc,为什么不创建一个局部视图并在其中格式化 html 而不是在视图中的 javascript 中。
  • @StephenMuecke 真棒抓住斯蒂芬!不知怎的,我错过了!
  • @Fran 老实说,我不太熟悉你想说什么,但我会查一下。谢谢你的提示!

标签: jquery json asp.net-mvc parsing


【解决方案1】:

使用此代码它总是对我有用

$.ajax({
                    url: 'Ur Url/commentValues',
                    type: 'GET',                        
                    dataType: "json",
                    async: false,
                    success: function (data) {

                    }
                });

控制器

[HttpGet]
        public object commentValues()
        {
            try
            {                                                         
                    var Result =naiveAnalysisAction.getCommentAndValues()
                    return new { IsError = false, DataList = Result };

             }   

            }
            catch (Exception ex)
            {

            }
            return null;
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-06
    • 1970-01-01
    • 2013-10-15
    • 2012-05-14
    • 1970-01-01
    • 2015-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多