2010-12-16 9 views
2

Wie kann ich die Daten im JSON-Format darstellen? Ich habe versucht, eine JSON-Zeichenfolge mit C# -Code in einer aspx-Datei zu erstellen und auszugeben. Wenn Sie zum Beispiel default.aspx im Browser öffnen, wird nur die json-Zeichenfolge ausgegeben. Aber ich kann nicht den default.aspx Link während der Verarbeitung in Android SDK verwenden, da die HTTP-Antwort auch HTML-Tags enthalten wird.Erstellen einer JSON-Ausgabedatei in C#

Grundsätzlich, wenn ich Ansichtsquelle auswählen, wenn ich die Datei dafault.aspx öffne, kann ich HTML-Tags nicht nur die JSON-Zeichenfolge sehen. wenn ich json api für twitter öffne, google kalender und wähle view source, die html nicht enthält. Kann mir jemand helfen, nur json out zu schaffen ... ??? Ich habe Daten in SQL-Server und ziemlich gut in C# -Codierung.

Vielen Dank im Voraus .... !!!

Antwort

3

so etwas wie:

using System.Web.Script.Serialization; 

public class Person 
{ 
    public string firstName = "bp"; 
    public string lastName = "581"; 
} 

public partial class MyPage : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     Person p = new Person(); 
     string output = JavaScriptObjectSerializer.Serialize(p); 
     Response.Write(output); 
     Response.Flush(); 
     Response.End(); 
    }   
} 

Dies ist der aspx-Code hinter Beispiel. Die aspx-Datei wird nach Response.End() ignoriert. Oder tun Sie es in einer Ashx-Datei und verzichten Sie auf HTML-Seiten-Markup.

Oder noch besser, in Betracht ziehen, einen Webservice zu verwenden. WCF oder eine asmx.

+0

Ihr seid genial .. !!! es funktionierte...!!! – bp581

+0

Ich bekomme diese Fehler..Der Name 'JavaScriptObjectSerializer' existiert nicht im aktuellen Kontext. Es funktioniert für normale json string..not für das Beispiel, das Sie angegeben haben. – bp581

+0

Macht nichts ... Ich habe es zum arbeiten gebracht. Nochmals vielen Dank für die rechtzeitige Hilfe. – bp581

0

Sie löschen den Inhalt wahrscheinlich nicht, bevor Sie die JSON-Zeichenfolge schreiben. Es ist viel einfacher, dies in einem "generischen Handler" zu tun, d. H. Einer Aschex-Datei. Implementieren Sie die ProcessRequest-Methode, legen Sie den Inhaltstyp auf "application/json" fest und schreiben Sie Ihre Daten aus.

+0

Dank für die schnelle Antwort ... es hat funktioniert. Bin dankbar ...!!! – bp581

0

Sie können versuchen, ein C# -Objekt zurückzugeben.

public JsonResult GetPerson() 
{ 
    var p = new Person(); 
    p.FirstName = "Name"; 
    p.LastName = "LastName"; 
    return Json(p); 
} 

So erhalten Sie:

{ 
    "FirstName" : "Name", 
    "LastName" : "LastName" 
}