2010-12-16 7 views
2

json形式でデータを公開するにはどうすればいいですか?私はaspxファイルでC#コードを使用してJSON文字列を作成して出力しようとしました。たとえば、ブラウザでdefault.aspxを開くと、json文字列だけが出力されます。しかし、http応答にhtmlタグも含まれるため、android sdkでの処理中にdefault.aspxリンクを使用することはできません。C#でJSON出力ファイルを作成する

基本的に、私がdafault.aspxを開いたときにビューソースを選択すると、JSON文字列だけでなくhtmlタグも見ることができます。 Twitterのjson apiを開くと、Googleカレンダーが表示され、HTMLを含まないビューソースが選択されます。誰も私がジェンソンを置くだけで作ることができますか????私はSQL Serverでデータを持っており、C#コーディングではかなり良いです。

ありがとうございました....

答えて

3

何か:

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(); 
    }   
} 

これは、例えば背後のaspxコードです。 aspxファイルはResponse.End()の後で無視されます。または、ashxファイルでそれを行い、htmlpageマークアップを忘れる。

さらに、Webサービスの使用を検討してください。 WCFまたはasmxです。

+0

あなたたちは天才です.. .. !!!出来た...!!! – bp581

+0

このエラーを受け取りました。名前 'JavaScriptObjectSerializer'は現在のコンテキストに存在しません。あなたが提供した例ではなく、通常のjsonの文字列で動作します。 – bp581

+0

決して心配しない。私はそれを働かせた。タイムリーなヘルプに感謝します。 – bp581

0

ASHX handlerを作成してください。

+0

おかげで多くのことを助けに迅速な応答のための – bp581

0

JSON文字列を書き出す前に、コンテンツをクリアしていない可能性があります。これを「ジェネリックハンドラ」、つまりashxファイルで行うほうがはるかに簡単です。 ProcessRequestメソッドを実装し、コンテンツタイプを "application/json"に設定し、データを書き出します。以下のような

+0

感謝感謝...それが働きました。感謝します ...!!! – bp581

0

C#オブジェクトを返すことができます。

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

だから、あなたが得る:...

{ 
    "FirstName" : "Name", 
    "LastName" : "LastName" 
} 
関連する問題