显示JSON字符串

时间:2011-06-20 19:15:42

标签: jquery .net json

这就是我所做的

 $.ajax({
            type: "POST", url: "Data.aspx/CheckInsertRecord",
            data: "{EventType:'" + eventtype + "',BeginDate:'" + begindate + "'," +
                   "EndDate:'" + enddate+"' }",
            contentType: "application/json; charset=utf-8", dataType: "json",
            success: function (msg) {
            var data = $.parseJSON(msg.d);

           alert("A record of this event already exists in the database.
                  \n" +  msg.d+".");

            }});

所以后面的代码会发生什么:

public static string CheckInsertRecord(String EventType, String BeginDate, String EndDate)
{
    NCDCPoint ncdc = new NCDCPoint();
    CEOSurveyDataContext CDC = new CEOSurveyDataContext();
    int et = Convert.ToInt32(EventType);
    CultureInfo provider = CultureInfo.InvariantCulture;
    DateTime b = Convert.ToDateTime(BeginDate);
    DateTime e = Convert.ToDateTime(EndDate);
    DetailsView a = new DetailsView();



  var query = (from n in CDC.NCDCPoints
                where n.EVENT_TYPE_ID == et && n.BeginDate == b && n.EndDate == e
                select new { 
                   n.EVENT_TYPE_ID,
              BeginDate =  n.BeginDate.ToString("yyyy-MM-dd",provider),
               EndDate = n.EndDate.ToString(),
                n.BeginLAT,
              BeginLONG =  n.BeginLONG,
                n.EndLAT,
                n.EndLONG});

   if (query.Any())
   {
       return new JavaScriptSerializer().Serialize(query.ToList());
   }
   else
   {
       return "No duplicate";
   }

      }

代码可能用处不大。但是,JOSN字符串通常会显示出来。我试图使用详细信息视图,但没有成功。那么,请你们告诉我这样的方式,这样我就可以打印出一个好的格式。这就是我的JSON字符串现在显示的方式:

{"EVENT_TYPE_ID":1,"BeginDate":"2011-06-03","EndDate":"2011-06-11",
 "BeginLAT":null,"BeginLONG":null,"EndLAT":null,"EndLONG":null}

4 个答案:

答案 0 :(得分:2)

如果这仅仅是为了您的调试需求,那么我建议使用Firebug for Firefox。它将向您显示所有AJAX请求和服务器响应。如果响应格式正确JSON,它将提供一个很好的可折叠JSON视图。

答案 1 :(得分:0)

如果我了解您的要求,您希望显示返回的JSON。

您是否可以使用$ .parseJSON设置的数据变量?

那将为您提供一个包含JSON值的对象。

e.g。

 var data = $.parseJSON(msg.d);

会给你类似的东西

 data.EVENT_TYPE_ID
 data.BeginDate
 //etc

所以你可以用它来建立一个最适合你的格式的显示字符串。

答案 2 :(得分:0)

虽然我不清楚这个问题,但看起来你试图从jquery调用C#代码并且你成功了。

要在代码中获取JSON对象,只需尝试:

<html>

         

    function test (data) 
    { 
        var a = $.parseJSON(data);
        alert(a.EVENT_TYPE_ID);
    }
    function load()
    {
        test('{"EVENT_TYPE_ID":1,"BeginDate":"2011-06-03","EndDate":"2011-06-11","BeginLAT":null,"BeginLONG":null,"EndLAT":null,"EndLONG":null}');
    }
</script>
</head>
<body onload="load()">
</body>
</html>

它对我有用。

答案 3 :(得分:0)

如果要在处理后显示。看看http://james.newtonking.com/pages/json-net.aspx

您可以将其反序列化为对象并将其打印得很好。