我有来自这里的回报
public string Get(int id)
{
return "{\"longPachage\":{\"Id\":0}}";
}
并且我通过ajax使用此代码
接收此返回 $.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
url: "http://localhost:3148/api/values/5",
success: function (data) {
alert(data);
alert(" Success ");
},
error: function (data) {
alert(" Error ");
}
})
我可以反序列化json对象并仅打印Id值吗?
答案 0 :(得分:0)
像这样改变你的方法:
public ActionResult Get(int? id)
{
return Content("{\"longPachage\":{\"Id\":0}}");
}
然后在你的jQuery中:
$.getJSON("http://localhost:3148/api/values", {id:5}, function(data) {
var id = data.longPachage.Id;
alert(id)
});
答案 1 :(得分:0)
您可以使用此代码。它可能对你有所帮助。 您不解析数据以获取字符串格式的JSON。因此,您现在可以使用此代码以字符串格式获取JSON数据。
var obj = JSON.parse(data);
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
url: "http://localhost:3148/api/values/5",
success: function (data) {
var obj = JSON.parse(data);
alert(obj.Id);
alert(" Success ");
},
error: function (data) {
alert(" Error ");
}
})
答案 2 :(得分:0)
你必须从控制器发送一个json结果。
表示exa。
public JsonResult Get(int id)
{
return Json(new
{
longPachage = new { ID = 0 }
}, JsonRequestBehavior.AllowGet);
}
并且在你的ajax成功中,只需检索该对象或dataID。
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
url: "http://localhost:3148/api/values/5",
success: function (data) {
var dataID = data.longPachage.Id;
// Do with Your ID.
},
error: function (data) {
//Do anything for error here.
}
})
答案 3 :(得分:0)
尝试在MVC中使用JsonResult来返回Json而不是构建字符串。 JsonResult只是一个ActionResult的抽象类。修改控制器中的代码,如下所示
方法1:
public JsonResult GetTest(int id)
{
return this.Json(new { ID = 0 }, JsonRequestBehavior.AllowGet);
}
OR
方法2:
尝试将模型类创建为LongPachage
public class LongPachage()
{
public int ID {get;set;}
}
并尝试按如下方式调用控制器方法
public JsonResult Get(int id)
{
LongPachage model = new LongPachage();
model.ID = 0;
return this.Json(model, JsonRequestBehavior.AllowGet);
}
OR
方法3
创建Model类说TestModel并尝试添加LongPachage类作为此类的主要内容。
public class TestModel()
{
public LongPachage LongPachage {get;set;}
}
并尝试按如下方式调用控制器方法
public JsonResult Get(int id)
{
TestModel model = new TestModel();
model.LongPachage .ID = 0;
return this.Json(model, JsonRequestBehavior.AllowGet);
}
然后在视图中使用AJAX GET包装器尝试实现如下
$.get('@Url.Action("Get","ControllerName")', { id: "5" })
.done(function (data) {
// If you are using Method 1 or Method 2 alert will be as follows
alert(data.ID);
// If you are using method 3
alert(data.LongPachage.ID)
});