我正在创建一个ASP.Net API,以便从服务器获取一些信息。我创建了一个控制器,在其中发送获取请求。响应是一个json字符串。我想稍微编辑一下这个json:我想摆脱一些属性。我对JSON一无所知,因此我需要一些帮助才能将该字符串解析为json文件,对其进行编辑并将其转换回json字符串。
我的json字符串很好。到目前为止,这是我的代码:
public class MyController : Controller
{
[HttpGet("{date}/{id}/{no}")]
public string Get(string date, string id, string no)
{
try
{
string dateParsed = date.Replace("-", "/");
string myUrl = "https://someurl/.../..";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(myUrl);
request.Headers["someKey"] = "<KEY>";
request.Accept = "application/json";
request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
using (Stream stream = response.GetResponseStream())
using (StreamReader reader = new StreamReader(stream))
{
string responseFromServer = reader.ReadToEnd();
// TODO Edit the json!
return responseFromServer;
}
}
catch (Exception exception)
{
Console.WriteLine(exception.ToString());
return exception.ToString();
}
}
}
那么我是否必须定义一个必须使用JSON反序列化器实例化的对应c#对象,然后创建所需的c#对象并复制值?
我看到了这样的解决方案:(已注释掉另一种方法)
var responseFromServer = reader.ReadToEnd();
JavaScriptSerializer js = new JavaScriptSerializer();
Response responseJSON = (Response)js.Deserialize(responseFromServer, typeof(Response));
//var responseJSON = JsonConvert.DeserializeObject<Response>(responseFromServer);
与此有关的问题是,拥有两个对象层次结构并将其转换似乎很容易出错。
没有办法对json字符串本身进行操作吗?预先感谢