C# 如何在C中显示JSON数据#

C# 如何在C中显示JSON数据#,c#,json,wcf,C#,Json,Wcf,我是WCF的新手。我创建了一个WCF服务,并将数据作为JSON数据返回。我将返回数据分配给GridView,它完美地显示了数据 [OperationContract] [WebInvoke(Method = "GET", BodyStyle = WebMessageBodyStyle.Bare, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, UriTemplate="employee/

我是WCF的新手。我创建了一个WCF服务,并将数据作为JSON数据返回。我将返回数据分配给GridView,它完美地显示了数据

[OperationContract]
[WebInvoke(Method = "GET", BodyStyle = WebMessageBodyStyle.Bare, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, UriTemplate="employee/{search}")] 
List<Employee> Listing(string search);
它是这样显示的

Employee[]
如何使用C#在div元素中显示JSON字符串


提前谢谢。

我找到了解决方案

  JavaScriptSerializer serializer = new JavaScriptSerializer();
  StringBuilder sb = new StringBuilder();
  serializer.Serialize(esc.Listing("s"), sb);
  dvJson.InnerHtml = sb.ToString();
输出:

  [{"ID":1,"Name":"Raja"},{"ID":2,"Name":"Manisha"},{"ID":4,"Name":"Sam"},{"ID":7,"Name":"Suresh"}]
使用DataContractJsonSerializer (Pranav Singh代码更新[2-4行])

要避免类型信息,请从JSON数据中将JSON序列化程序设置
EmitTypeInformation设置为“从不”

  MemoryStream stream1 = new MemoryStream();
  DataContractJsonSerializerSettings settings = new DataContractJsonSerializerSettings();
  settings.EmitTypeInformation = System.Runtime.Serialization.EmitTypeInformation.Never;
  DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(List<Employee>), settings);
  ser.WriteObject(stream1, esc.Listing("s"));
  stream1.Position = 0;
  StreamReader sr = new StreamReader(stream1);
  dvJson.InnerHtml = sr.ReadToEnd();
MemoryStream stream1=新的MemoryStream();
DataContractJsonSerializerSettings设置=新建DataContractJsonSerializerSettings();
settings.EmitTypeInformation=System.Runtime.Serialization.EmitTypeInformation.Never;
DataContractJsonSerializer ser=新的DataContractJsonSerializer(类型(列表),设置);
ser.WriteObject(stream1,esc.Listing(“s”));
1.位置=0;
StreamReader sr=新的StreamReader(stream1);
dvJson.InnerHtml=sr.ReadToEnd();

谢谢

使用
DataContractJsonSerializer
类,请参阅

它优于
JavaScriptSerializer
,因为它还可以安全地从JSON字符串反序列化对象,并且是WCF的一部分

用法:

    MemoryStream stream1 = new MemoryStream();
    DataContractJsonSerializer ser = new DataContractJsonSerializer (typeof (List<Employee>));
    ser.WriteObject(stream1, esc.Listing("s"));
    stream1.Position = 0;
    StreamReader sr = new StreamReader(stream1);
    dvJson.InnerHtml = sr.ReadToEnd();

它显示输出:[{uuuu-type:“Employee:#Org”,“ID”:1,“Name:#Raja”},{uuuu-type:“Employee:#Org”,“ID”:2,“Name:#Manisha”}]。我们可以不使用“u type”:“Employee:#Org”来获取数据吗?在您的web.config:而不是
元素中,为您的
端点行为使用
,例如:
    MemoryStream stream1 = new MemoryStream();
    DataContractJsonSerializer ser = new DataContractJsonSerializer (typeof (List<Employee>));
    ser.WriteObject(stream1, esc.Listing("s"));
    stream1.Position = 0;
    StreamReader sr = new StreamReader(stream1);
    dvJson.InnerHtml = sr.ReadToEnd();
    DataContractJsonSerializerSettings settings = new DataContractJsonSerializerSettings();
    settings.EmitTypeInformation = System.Runtime.Serialization.EmitTypeInformation.Never;
    DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(List<Employee>), settings);