簡體   English   中英

如何使用 C# 返回序列化到 JSON

[英]How to return serialized to JSON using C#

我正在使用 WCF,其中我返回 JSON。 但我收到的消息看起來像

"{\"ids\":[\"id\":1,\"id\":34,\"id\":67,\"id\":100,\"id\":133,\"id\":166,\"id\":199]}"

如何擺脫第一個和最后一個引號?

編輯:

public class Ids {
   public IdDetails[] ids{get;set}
}
public class IdDetails{
   public int id {get;set}
}

在這里我返回 JSON

public string GetIds(){
   Ids ids = new Ids();
   List<IdDetails> idd = new List<IdDetails>();
   for(int i=0;i<10; i++){
      idd.add(new IdDetails(i+1*33));
   }
   ids.ids = idd.ToArray();
   JavaScriptSerializer jSerialize = new JavaScriptSerializer();
   string json = jSerialize.Serialize(ids);
   return ids;
}

*編輯 2:已解決 *

該方法不應返回字符串。 它應該返回一個 Ids 對象。 無需序列化。 設置 ResponseFormat = WebMassageFormat.Json 它將起作用。

不管怎么說,多謝拉!

您是否正在使用 Visual Studio 調試器查看字符串?

截屏

調試器將字符串顯示為 C# 字符串文字。 字符串本身實際上並不包含前導和尾隨的"字符和\字符。

Console.WriteLine(s);

Output:

{"ids":["id":1,"id":34,"id":67,"id":100,"id":133,"id":166,"id":199]}

JavaScriptSerializer Class

JavaScriptSerializer class 由異步通信層在內部用於序列化和反序列化在瀏覽器和 Web 服務器之間傳遞的數據。 您無法訪問該序列化程序的實例。 但是,此 class 公開了一個公共 API。 因此,當您想在托管代碼中使用 JavaScript Object 表示法 (JSON) 時,可以使用 class。

要序列化 object,請使用 Serialize 方法。 要反序列化 JSON 字符串,請使用 Deserialize 或 DeserializeObject 方法。 要序列化和反序列化 JavaScriptSerializer 本身不支持的類型,請使用 JavaScriptConverter class 實現自定義轉換器。 然后使用 RegisterConverters 方法注冊轉換器。

我在非網絡應用程序中使用過它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM