我有这个结果
我的代码如下:
我错过了什么以便JSON被美化?
查看
@model PruebasAD.Models.SuccessViewModel
@{
ViewBag.Title = "TestRestCall";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>TestRestCall</h2>
<article>
<aside class="green">
@Model.Message
</aside>
<aside>
<pre id="json-result">
</pre>
</aside>
</article>
<script type="text/javascript">
$(document).ready(function(){
var str = JSON.stringify(@(new MvcHtmlString(Model.JSON)), undefined, 2); // indentation level = 2
$('#json-result').html(str);
console.log(str);
});
</script>
控制器动作
public async Task<ActionResult> TestRestCall()
{
Uri serviceRoot = new Uri(azureAdGraphApiEndPoint);
var token = await GetAppTokenAsync();
string requestUrl = "https://graph.windows.net/mysaasapp.onmicrosoft.com/users?api-version=2013-04-05";
HttpClient hc = new HttpClient();
hc.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue(
"Bearer", token);
HttpResponseMessage hrm = await hc.GetAsync(new Uri(requestUrl));
if (hrm.IsSuccessStatusCode)
{
string jsonresult = await hrm.Content.ReadAsStringAsync();
return View("TestRestCall", new SuccessViewModel
{
Name = "The Title",
Message = "The message",
JSON = jsonresult.ToJson()
});
}
else
{
return View();
}
}
和模型
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace PruebasAD.Models
{
public class SuccessViewModel
{
public string Name { get; set; }
public string Message { get; set; }
public string JSON { get; set; }
}
}
答案 0 :(得分:1)
首先,您需要使用JSON.parse在javascript对象中转换模型,然后传递给JSON.stringify
请参阅json.parse
的文档<script type="text/javascript">
$(document).ready(function(){
var myObject = JSON.parse(@Html.Raw(new MvcHtmlString(Model.JSON)));
var str = JSON.stringify(myObject,undefined, 2); // indentation level = 2
$('#json-result').html(str);
console.log(str);
});