2

我正在将从存储过程返回的结果写入 json。我做到了,但我不确定是否有比我拥有的更简单的清洁方法。另外,我如何检查它是否真的写入了 json?

var results = mySvc.GetInfo("Environment");

StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
JsonWriter jsonWriter = new JsonTextWriter(sw);
jsonWriter.WriteStartObject();
jsonWriter.WritePropertyName("Id");
jsonWriter.WriteValue(results.Id);
jsonWriter.WritePropertyName("Head");
jsonWriter.WriteValue(results.Head);
jsonWriter.WritePropertyName("Value");
jsonWriter.WriteValue(results.Value);
jsonWriter.WritePropertyName("GuidTwo");
jsonWriter.WriteValue(results.GuidTwo);
jsonWriter.WritePropertyName("GuidOne");
jsonWriter.WriteValue(results.Guid1);
jsonWriter.WriteEndObject();
return results;
4

3 回答 3

4

安装Json.NET,您只需执行以下操作:

var results = mySvc.GetInfo("Environment");
var json = JsonConvert.SerializeObject(results);

逆:

var results = JsonConvert.DeserializeObject<Result>(json);
于 2013-08-06T13:13:57.057 回答
2

通过使用ServiceStack json 序列化程序(它比 json.net 更快)

 Install-Package ServiceStack.Text
 using ServiceStack.Text;

 var json = results.ToJson();
于 2013-08-06T13:23:27.653 回答
2

尝试这个

var results = mySvc.GetInfo("Environment");
var js = new System.Web.Script.Serialization.JavaScriptSerializer();
var jsonObj = js.Serialize(results);
于 2013-08-06T13:08:24.397 回答