问题 使用Newtonsoft.json.JsonTextWriter编写Json


我正在使用Newtonsoft.json.JsonTextWriter编写一个json。 这是我的代码:

StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
JsonWriter jsonWriter = new JsonTextWriter(sw);

jsonWriter.Formatting = Formatting.Indented;

jsonWriter.WritePropertyName("Name");
jsonWriter.WriteValue("Allan");

我假设那样 sw 有json格式{“Name”:“Allan”}。如何在一些字符串变量中获取书面文本,以便我可以在我的http请求中使用此json数据?


2236
2018-05-12 15:24


起源



答案:


我的答案现在不相关了,因为问题中的代码示例已被编辑为包含这些行,留在这里作为后代,请参阅注释以获取更多信息。


您需要添加以下内容才能正确关闭JSON元素:

jsonWriter.WriteEndObject();

然后调用StringBuilder的ToString()方法:

string strMyString = sb.ToString(); //JSONString

参考文献:

StringWriter构造函数(MSDN) | 阅读和写作JSON(NewtonKing.com)


16
2018-05-12 15:35



字符串正在从json中删除{}。实际上我只想检查我的json是否正确它与我之前的问题有关 stackoverflow.com/questions/5978928/... - Muhammad Zeeshan
你有没有jsonWriter.WriteStartObject();还有?如果是这样,可能需要在您的问题中扩展代码示例。 - Richard Benson
StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); JsonWriter jsonWriter = new JsonTextWriter(sw); jsonWriter.Formatting = Formatting.Indented; jsonWriter.WriteStartObject(); jsonWriter.WritePropertyName( “名称”); jsonWriter.WriteValue( “Zeeshan”); jsonWriter.WriteEndObject(); string output = sw.ToString(); jsonWriter.Close(); sw.Close(); - Muhammad Zeeshan
复制/粘贴新代码会将正确的JSON放入“输出”字符串中。 - Richard Benson


答案:


我的答案现在不相关了,因为问题中的代码示例已被编辑为包含这些行,留在这里作为后代,请参阅注释以获取更多信息。


您需要添加以下内容才能正确关闭JSON元素:

jsonWriter.WriteEndObject();

然后调用StringBuilder的ToString()方法:

string strMyString = sb.ToString(); //JSONString

参考文献:

StringWriter构造函数(MSDN) | 阅读和写作JSON(NewtonKing.com)


16
2018-05-12 15:35



字符串正在从json中删除{}。实际上我只想检查我的json是否正确它与我之前的问题有关 stackoverflow.com/questions/5978928/... - Muhammad Zeeshan
你有没有jsonWriter.WriteStartObject();还有?如果是这样,可能需要在您的问题中扩展代码示例。 - Richard Benson
StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); JsonWriter jsonWriter = new JsonTextWriter(sw); jsonWriter.Formatting = Formatting.Indented; jsonWriter.WriteStartObject(); jsonWriter.WritePropertyName( “名称”); jsonWriter.WriteValue( “Zeeshan”); jsonWriter.WriteEndObject(); string output = sw.ToString(); jsonWriter.Close(); sw.Close(); - Muhammad Zeeshan
复制/粘贴新代码会将正确的JSON放入“输出”字符串中。 - Richard Benson