簡體   English   中英

如何從javascript發布json?

[英]how to post a json from javascript?

我想從使用javascript的html網頁發送json字符串到WCF ..是否有任何好的教程?

這是我正在使用的代碼

<head> 
   <title>Test</title> 
   <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
   <script type="text/javascript" src="http://www.json.org/json2.js"></script> 
   <script type="text/javascript"> 
     $(function() { 
      JSONStringer json = new JSONStringer()

                      .object()   
                      .key("cno").value("2000")
                      .key("cname").value("HI")
                      .key("cmail").value("HI")
                      .key("cphno").value("9292")
                      .key("cmailtype").value("Home")
                      .key("cphnotype").value("Office")
                      .key("clientno").value("1")

                    .endObject();
       var dat = JSON.stringify(json.serializeArray()); 

       alert("I am about to POST this:\n\n" + dat); 

       $.post( 
         frm.attr("action"), 
         dat, 
         function(data) { 
           alert("Response: " + data); 
         } 
       ); 
     }); 
   </script> 
</head> 

讓我知道我必須將它發布到特定服務...就像指定URL一樣

我認為您正在將Java與JavaScript混為一談。 盡管它們的名字不存在任何關系。 據我所知, JSONStringer在javascript和jquery中都不存在。 JSON代表JavaScript Object Notation(JavaScript對象表示法),這意味着它對於javscript語言非常原生(有一些細微的差別)。 由於它是如此接近,因此很容易在javascript中解析Json。

此外,javascript是一種動態類型語言,因此提供類型通常會導致解析錯誤。 如果您的代碼無效,請使用firebug或Chrome控制台。 當瀏覽器無法解析您的代碼時,您將看到一個錯誤。

用於您可能要使用的序列化(在支持JSON和/或json2.js的瀏覽器中)

var dat = JSON.stringify({
  cno: 2000,
  cname: 'HI',
  cmail: 'HI',
  cphno: '9292',
  cmailtype: 'home',
  cphnotype: 'Office',
  clientno: 1
});

該URL進入您放置frm.attr("action") 我沒有看到你在哪里創建frm對象。 我不認為你需要一個JQuery對象,所有主流瀏覽器都支持document.getElementById ,我敢打賭它也更快。

var myForm = document.getElementById('myformid');
$.post( 
  myForm.action, 
  dat, 
  function(data) { 
    alert('Response: ' + data); 
  } 
); 

據我所知,postdata必須采用查詢參數格式,所以你可能需要輸入類似的東西

'myData=' + dat,

從網絡上復制/粘貼代碼可以快速開始工作,但是許多javascript程序員忘記了您必須首先了解該語言。 不要盲目地復制代碼,試着了解會發生什么。 首先嘗試在沒有庫的情況下解決問題,然后發現實際需要的庫。

http://www.learn-ajax-tutorial.com/PassingData.cfm#JSON

  1. 獲取json.js.
  2. 將數組或對象編碼到json中。
  3. 執行Ajax.Request發布json字符串。 Simplez!

這幾乎就是您所需要的,不確定WCF方面,但是如果它是適當的Web服務,那么您所需要的就是描述符,以找出函數名稱及其參數。

暫無
暫無

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

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