将列表转换为json格式 - 快速简便的方法

fre*_*hie 36 c# asp.net

假设我有一个对象MyObject,如下所示:

public class MyObject
{
  int ObjectID {get;set;}
  string ObjectString {get;set;}
} 
Run Code Online (Sandbox Code Playgroud)

我有一个MyObject列表,我想用一个带有stringbuilder的json字符串转换它.我知道如何创建一个JavascriptConverter并通过传递一个列表并让转换器构建字符串来创建一个json字符串但在这种特殊情况下我希望避免开销并直接转到列表中带有foreach循环的json字符串像这样:

StringBuilder JsonString = new StringBuilder();

foreach(MyObject TheObject in ListOfMyObject)
{

}
Run Code Online (Sandbox Code Playgroud)

我试图通过附加逗号和引号来使用此方法,但它尚未解决(尚未).

谢谢你的建议.

Mar*_*ino 53

我在使用JavaScript序列化类之前做过类似的事情:

using System.Web.Script.Serialization;
Run Code Online (Sandbox Code Playgroud)

和:

JavaScriptSerializer jss = new JavaScriptSerializer();

string output = jss.Serialize(ListOfMyObject);
Response.Write(output);
Response.Flush();
Response.End();
Run Code Online (Sandbox Code Playgroud)


fre*_*hie 38

经过3年的经验,我回到这个问题,并建议像这样写:

string output = new JavaScriptSerializer().Serialize(ListOfMyObject);
Run Code Online (Sandbox Code Playgroud)

一行代码.

  • 我很高兴看到这样的答案.那一年,我们只是困惑的孩子.多年以后,事情看起来如此重要,对我们来说很难变得如此简单和不必要,因为我们成长,但问题仍然是一样的:-) (3认同)

use*_*167 19

对我来说,它使用Newtonsoft.Json:

using Newtonsoft.Json;
// ...
var output = JsonConvert.SerializeObject(ListOfMyObject);
Run Code Online (Sandbox Code Playgroud)

  • 您可以将两个列表放在一个列表中,然后执行上面的操作:ListOfMyObject.AddRange(MyOtherListOfMyObject); (4认同)

Ala*_*tts 7

我会避免自己滚动并使用:

System.Web.Script.JavascriptSerializer

要么

JSON.net

两者都会做得很好:)