C# 在C中创建json的最快方法#
我有下面给出的数据样本C# 在C中创建json的最快方法#,c#,json,C#,Json,我有下面给出的数据样本 { "ditems": [ { "type": "ditem", "name": "webmet.com", "ditem": 0, "links": [ "www.abc.com/a", "www.sempo.org/" ] },
{
"ditems": [
{
"type": "ditem",
"name": "webmet.com",
"ditem": 0,
"links": [
"www.abc.com/a",
"www.sempo.org/"
]
},
{
"type": "ditem",
"name": "webmet.com/who-we-are/careers",
"ditem": 2,
"links": [
"http://www.tele12.com/about",
"http://tele12.com/life-at-teletech-en-US/about-teletech/"
]
}
],
"themes": [
{
"type": "theme",
"name": "http://searchm.com/isr/agenda",
"description": "",
"slug": "http://searchm.com/isr/agenda-2"
},
{
"type": "theme",
"name": "http://www.sempo.org/",
"description": "",
"slug": "http://www.sempo.org/-2"
}
]
}
这是我的密码
var InternalURLList = dtInternalURL.AsEnumerable().Select(c => c.Field<string>("URL")).Distinct().ToList();
StringBuilder sb = new StringBuilder();
StringBuilder ThemeSb = new StringBuilder();
sb.Append("{\"ditems\":[");
if (InternalURLList.Count > 0)
{
for (int i = 0; i < InternalURLList.Count; i++)
{
var ExternalDomainList = GetExternalDomain(Domain_ID, InternalURLList[i]).AsEnumerable().Select(c => c.Field<string>("ExternalDomain")).Distinct().ToList();
sb.Append("{\"type\":\"ditem\",");
sb.Append("\"name\":");
sb.Append("\"" + InternalURLList[i] + "\",");
sb.Append("\"ditem\":" + i + ",");
sb.Append("\"links\":[");
if (ExternalDomainList.Count > 0)
{
for (int j = 0; j < ExternalDomainList.Count; j++)
{
sb.Append("\"" + ExternalDomainList[j] + "\"");
sb.Append((j != ExternalDomainList.Count - 1) ? "," : "]") ;
}
}
else
{
sb.Append("]");
}
sb.Append("}");
sb.Append((i != InternalURLList.Count - 1)?",":"]");
}
}
else
{
sb.Append("]");
sb.Append(",");
}
DataTable dtDistinctDomain = GetDistinctExtDomain(Domain_ID);
var ExternalDomain = dtDistinctDomain.AsEnumerable().Select(c => c.Field<string>("ExternalDomain")).Distinct().ToList();
ThemeSb.Append(",\"themes\":[");
for (int i = 0; i < ExternalDomain.Count; i++)
{
// For theme
ThemeSb.Append("{\"type\":\"theme\",");
ThemeSb.Append("\"name\":\"" + ExternalDomain[i] + "\",");
ThemeSb.Append("\"description\":\"\",");
ThemeSb.Append("\"slug\":\"" + ExternalDomain[i] + "-2" + "\"}");
ThemeSb.Append((i != ExternalDomain.Count - 1)?",":"]");
}
ThemeSb.Append("}");
string ConceptMapTheme = ThemeSb.ToString() ;
string ConceptMapJSON = sb.ToString()+ThemeSb.ToString();
return ConceptMapJSON;
var internalurlist=dtInternalURL.AsEnumerable().Select(c=>c.Field(“URL”)).Distinct().ToList();
StringBuilder sb=新的StringBuilder();
StringBuilder ThemeSb=新的StringBuilder();
某人追加(“{\”数据项\:[”);
如果(InternalURLList.Count>0)
{
for(int i=0;ic.Field(“ExternalDomain”).Distinct().ToList();
sb.追加(“{\”类型\“:\”数据项\“,”);
某人加上(“\”姓名“:”);
sb.追加(“\”+InternalURLList[i]+“\”,”);
sb.追加(“\”数据项\“:“+i+”,”);
某人加上(“\”链接“:[”);
如果(ExternalDomainList.Count>0)
{
for(int j=0;jc.Field(“ExternalDomain”).Distinct().ToList();
附加(“,\”主题\“:[”);
for(int i=0;i
我正在尝试使用StringBuilder
在C#中生成json。for
循环花费了太多时间来生成json。该表包含超过200000条记录。如何使用C#?以最快的方式创建json您可以在项目中添加。
然后只需调用序列化程序:
var jsonString = JsonConvert.SerializeObject(objectToSerialize);
看看当您可以使用web api或mvc web应用程序使用NewtonsoftJSON时,为什么还要手动创建。类似这样:
publicjsonresult Index(){returnjson(jsonrequestbehavior.AllowGet,True);}
还可以查看一下您的@Rubens-该功能内置于Visual Studio中;你不需要使用网站。转到VS Edit>Paste Special>Paste JSON As Classes中的顶部菜单。这个答案对我没有帮助。使用您添加的代码,您似乎没有定义任何要序列化的对象。为什么不定义要序列化的对象,然后将其序列化,而不是使用StringBuilder类?