1.我现在有一个这样的api地址他返回的是json格式的数据
http://api.cndns.com/sitestar/getTemplateCategories.aspx?username=cantect&otime=201302281136&checksum=5d3742d59bb86347d71b7145a6615f612.我想获取他的status的值,但是我不知道从何下手3.这是我用jquery写的获取json的测试页面,通过firebug的调试,证明我get了json数据,但是显示不了
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>test.html</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
<script type="text/javascript" language="javascript" src="js/jquery-1.7.2.js"></script>
<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
<script>
function showStudent(){
var s='';
$.getJSON("http://api.cndns.com/sitestar/getTemplateCategories.aspx?username=cantect&otime=201302281136&checksum=5d3742d59bb86347d71b7145a6615f61",function(json){
var d=json.status; for(var i=0;i<d.length;i++){
//循环输出p标签
s+=('<p>id:'+d[i].status +' ');
}
$('#content').html(s);
});
} </script>
</head>
<body>
<input type="button" value="获取json" onclick="showStudent()" />
<div id="content"></div>
</body>
</html>
json跨域 jqueryfirebughtml
http://api.cndns.com/sitestar/getTemplateCategories.aspx?username=cantect&otime=201302281136&checksum=5d3742d59bb86347d71b7145a6615f612.我想获取他的status的值,但是我不知道从何下手3.这是我用jquery写的获取json的测试页面,通过firebug的调试,证明我get了json数据,但是显示不了
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>test.html</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
<script type="text/javascript" language="javascript" src="js/jquery-1.7.2.js"></script>
<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
<script>
function showStudent(){
var s='';
$.getJSON("http://api.cndns.com/sitestar/getTemplateCategories.aspx?username=cantect&otime=201302281136&checksum=5d3742d59bb86347d71b7145a6615f61",function(json){
var d=json.status; for(var i=0;i<d.length;i++){
//循环输出p标签
s+=('<p>id:'+d[i].status +' ');
}
$('#content').html(s);
});
} </script>
</head>
<body>
<input type="button" value="获取json" onclick="showStudent()" />
<div id="content"></div>
</body>
</html>
json跨域 jqueryfirebughtml
$(function(){
$.ajax({
type:'GET',
url:'http://api.cndns.com/sitestar/getTemplateCategories.aspx?username=cantect&otime=201302281136&checksum=5d3742d59bb86347d71b7145a6615f61' ,
dataType:'jsonp',
success:function(data){
console.log(data);
}});
});
好像不行,建议LZ用JAVA或PHP去获取,然后用ajax去调用对应的后台程序。
<script>
$(document).ready(function()
{
//从校务系统取得学校新闻
var shoolwebsite = "http://10.1.8.199:801/school/InterFaceWebService.asmx/GetSchoolNotice2_jsonSerialization?callback=?";
$.getJSON(
shoolwebsite,
{uid:'mkxling', CountTop:10},//用户id,取得最新新闻条数
function(data)
{
var i=0;
var jsons ;
jsons=jQuery.parseJSON(data.msg);
var i=0;
if (jsons)
{
if (jsons.length > 0 )
{
for (i = 0; i <= jsons.length-1; i++) {
alert(jsons[i].NoticeId);
alert('创建时间:' +jsons[i].CreateTime);
alert('新闻标题:'+Url.decode(jsons[i].Title));
alert('新闻超链接:'+jsons[i].URL);
alert('作者:'+Url.decode(jsons[i].NOTICEAUTHOR));
alert('新闻内容:'+Url.decode(Url.decode(jsons[i].NOTICE)).replace(/\+/g," "));
//asp不懂 建议用【创建时间】,【新闻标题】作为主键更新NEWS这张表。
}
}
}
});
})
var Url = {
// public method for url encoding
encode : function (string) {
return escape(this._utf8_encode(string));
},
// public method for url decoding
decode : function (string) {
return this._utf8_decode(unescape(string));
},
// private method for UTF-8 encoding
_utf8_encode : function (string) {
string = string.replace(/\r\n/g,"\n");
var utftext = "";
for (var n = 0; n < string.length; n++) {
var c = string.charCodeAt(n);
if (c < 128) {
utftext += String.fromCharCode(c);
}
else if((c > 127) && (c < 2048)) {
utftext += String.fromCharCode((c >> 6) | 192);
utftext += String.fromCharCode((c & 63) | 128);
}
else {
utftext += String.fromCharCode((c >> 12) | 224);
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
utftext += String.fromCharCode((c & 63) | 128);
}
}
return utftext;
},
// private method for UTF-8 decoding
_utf8_decode : function (utftext) {
var string = "";
var i = 0;
var c = c1 = c2 = 0;
while ( i < utftext.length ) {
c = utftext.charCodeAt(i);
if (c < 128) {
string += String.fromCharCode(c);
i++;
}
else if((c > 191) && (c < 224)) {
c2 = utftext.charCodeAt(i+1);
string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
i += 2;
}
else {
c2 = utftext.charCodeAt(i+1);
c3 = utftext.charCodeAt(i+2);
string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
i += 3;
}
}
return string;
}
}
现在在家了,有空贴吧
$.getJSON(
website,//webservice调用
{USERID:myuserid,PWD:mypwd,SUBJECTDETAILGUID:mysubjectdetailguid,TOPCOUNT:TOPCOUNT}, //参数调用
function(data)
{
if (jQuery.parseJSON(data.msg)[0].RESULT=="-1") //取得失败
{
$('#'+mycontainerid).html(''); return;
}
var i=0;
var jsons ;
var CREATETIME;
var NOTICENAME;
jsons=jQuery.parseJSON(data.msg);
var i=0;
if (mysubjectdetailguid=='a3e6d110-cfde-40a7-b1d5-32fb2027c7c7')
{
mysubjectdetailguid=mysubjectdetailguid;
}
if (jsons)
{$.getJSON(
website,//webservice调用
{USERID:myuserid,PWD:mypwd,SUBJECTDETAILGUID:mysubjectdetailguid,TOPCOUNT:TOPCOUNT}, //参数调用
function(data)
{
if (jQuery.parseJSON(data.msg)[0].RESULT=="-1") //取得失败
{
$('#'+mycontainerid).html(''); return;
}
var i=0;
var jsons ;
var CREATETIME;
var NOTICENAME;
jsons=jQuery.parseJSON(data.msg);
var i=0;
if (mysubjectdetailguid=='a3e6d110-cfde-40a7-b1d5-32fb2027c7c7')
{
mysubjectdetailguid=mysubjectdetailguid;
}
if (jsons)
{
<script type="text/javascript">
$(function(){
$.getJSON("http://query.yahooapis.com/v1/public/yql", {
q: "select * from json where url=\"http://api.cndns.com/sitestar/getTemplateCategories.aspx?username=cantect&otime=201302281136&checksum=5d3742d59bb86347d71b7145a6615f61\"",
format: "json"
}, function(data) {
var $content = $("#content")
var rst=data.query.results.json;
if(rst)alert(rst.status)
});});
</script>
function GETBIRTHDAYLIST(website,startday,endday,mycontainerid,lnkclass)
{
$.getJSON(
"http://10.1.8.33/NEWS/NEWS.asmx/GET_PUBLICNOTICE_LIST?callback=?",//webservice调用
{USERID:myuserid,PWD:mypwd,STARTDAY:startday,ENDDAY:endday}, //参数调用
function(data)
{
if (jQuery.parseJSON(data.msg)[0].RESULT=="-1") //取得失败
{
$('#'+mycontainerid).html(''); return;
}
var i=0;
var jsons ;
var BIRTHDAY;
var EMPNAME;
jsons=jQuery.parseJSON(data.msg);
var i=0;
var strhtml='';
strhtml= strhtml + "<table id='tablenoticepage' style='width:200px;'>";
if (jsons)
{
if (jsons.length > 0 )
{
for (i = 0; i <= jsons.length-1; i++) {
调用的WEBservice
'若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释
<System.Web.Script.Services.ScriptService()> _
'取得某个单位子栏目里面的文章列表
<WebMethod(EnableSession:=True)> _
Public Function GET_PUBLICNOTICE_LIST(ByVal USERID As String, ByVal PWD As String, _
ByVal SUBJECTDETAILGUID As String, ByVal TOPCOUNT As String) As String '判断用户合法性(开始)
Dim result As String
result = SetDataBaseInfo(USERID, PWD)
If result <> "0" Then
Return GET_NUMBER_RESULT_JSON("-1")
Exit Function
End If
'判断用户合法性(结束)
Try
Dim TDT As DataTable = Nothing TDT = commonread.Get_VIEW_PUBLICNOTICE_MB_READBYCONDITION_BYTOPCOUNT("SUBJECTDETAILGUID ='" & _
SUBJECTDETAILGUID & "' AND STATUS ='0' AND DELSTATUS='1' ", TOPCOUNT)
Dim rtn As New DataTable("PUBLICNOTICE_LIST") 'fields = "NOTICEGUID,FILEID,FILENAME," & _
' "FILETYPE,FILESIZE,USERID," & _
' "CREATETIME,OTHER,STATUS," & _
' "DEPARTID,SUBJECTID,SUBJECTDETAILID," & _
' "NOTICEID,NOTICENAME,NOTICE," & _
' "VIEWOFNUMBER,NOTICEAUTHOR,NOTICEDATE," & _
' "FLAG,SUBJECTDETAILGUID,SUBJECTDETAILNAME," & _
' "SHOWCOUNT,DEPARTNAME,SUBJECTGUID," & _
' "DEPARTGUID,SUBJECTNAME" rtn.Columns.Add(New DataColumn("NOTICEGUID"))
rtn.Columns.Add(New DataColumn("NOTICENAME"))
rtn.Columns.Add(New DataColumn("VIEWOFNUMBER"))
rtn.Columns.Add(New DataColumn("EMPNAME"))
rtn.Columns.Add(New DataColumn("CREATETIME"))
rtn.Columns.Add(New DataColumn("OTHER"))
rtn.Columns.Add(New DataColumn("NOTICEAUTHOR"))
rtn.Columns.Add(New DataColumn("NOTICEDATE"))
rtn.Columns.Add(New DataColumn("SHOWCOUNT")) Dim tmpItem As DataRow
Dim i As Integer
Dim tuser As DataTable
Dim empid As String
empid = commonread.GetEMPID_BYUSERID(Session("LOGINUSERID")) If Not TDT Is Nothing AndAlso TDT.Rows.Count > 0 Then
For i = 0 To TDT.Rows.Count - 1 '隐藏掉对当前用户不公开的栏目
'判断栏目是否公开
' fields = "NOTICEGUID,EMPIDS,EMPNAMES"
tuser = commonread.Get_PUBLICNOTICE_MB_USER_READONE(TDT.Rows(i)("NOTICEGUID"))
If Not tuser Is Nothing AndAlso tuser.Rows.Count > 0 Then
'不公开
Continue For
Else
'公开
End If tmpItem = rtn.NewRow
tmpItem("NOTICEGUID") = Common.ConvertDBNull(TDT.Rows(i)("NOTICEGUID"))
tmpItem("NOTICENAME") = HttpContext.Current.Server.UrlEncode(Common.ConvertDBNull(TDT.Rows(i)("NOTICENAME"))).Replace("+", "%20")
tmpItem("VIEWOFNUMBER") = Common.ConvertDBNull(TDT.Rows(i)("VIEWOFNUMBER"))
tmpItem("EMPNAME") = HttpContext.Current.Server.UrlEncode(commonread.GetEMPNAME_BYUSERID(Common.ConvertDBNull(TDT.Rows(i)("USERID")))).Replace("+", "%20")
tmpItem("CREATETIME") = Common.StringToDateTime(Common.ConvertDBNull(TDT.Rows(i)("CREATETIME")), "/")
tmpItem("OTHER") = HttpContext.Current.Server.UrlEncode(Common.ConvertDBNull(TDT.Rows(i)("OTHER"))).Replace("+", "%20")
tmpItem("NOTICEAUTHOR") = HttpContext.Current.Server.UrlEncode(Common.ConvertDBNull(TDT.Rows(i)("NOTICEAUTHOR"))).Replace("+", "%20")
tmpItem("NOTICEDATE") = Common.StringToDate(Common.ConvertDBNull(TDT.Rows(i)("NOTICEDATE")), "/")
tmpItem("SHOWCOUNT") = Common.ConvertDBNull(TDT.Rows(i)("SHOWCOUNT"))
rtn.Rows.Add(tmpItem)
Next
Else
Return GET_NUMBER_RESULT_JSON("-1")
End If 'Return rtn
Dim Request As HttpRequest = HttpContext.Current.Request
Dim callback As String = Request("callback")
'Dim callback As String = "?"
Dim Response As HttpResponse = HttpContext.Current.Response
Dim jsonstr As String = DataTableToJSON(rtn)
Response.Write(callback & "({msg:'" & jsonstr & "'})")
Try
'Response.End()
Response.Flush()
Response.Close()
Catch ex As Exception Finally End Try Return jsonstr
Catch ex As Exception
[color=#0000FF]Return GET_NUMBER_RESULT_JSON("-1") End Try[/color]
End Function
Public Shared Function DataTableToJSON(ByVal dt As System.Data.DataTable) As String
Dim jsonBuilder As New System.Text.StringBuilder()
jsonBuilder.Append("[") For idxOfRow As Integer = 0 To dt.Rows.Count - 1
jsonBuilder.Append("{")
For idxOfCol As Integer = 0 To dt.Columns.Count - 1
jsonBuilder.Append("""")
jsonBuilder.Append(dt.Columns(idxOfCol).ColumnName)
jsonBuilder.Append(""":""")
jsonBuilder.Append(dt.Rows(idxOfRow)(idxOfCol).ToString()) jsonBuilder.Append(""",")
Next
jsonBuilder.Remove(jsonBuilder.Length - 1, 1)
jsonBuilder.Append("},")
Next
jsonBuilder.Remove(jsonBuilder.Length - 1, 1)
jsonBuilder.Append("]") Return jsonBuilder.ToString()
End Function Private Function GET_NUMBER_RESULT_JSON(ByVal NUMBER As String) As String Try
Dim rtn As New DataTable("RESULT")
Dim tmpItem As DataRow
rtn.Columns.Add(New DataColumn("RESULT"))
tmpItem = rtn.NewRow
tmpItem("RESULT") = NUMBER
rtn.Rows.Add(tmpItem)
Dim Request As HttpRequest = HttpContext.Current.Request
Dim callback As String = Request("callback")
'Dim callback As String = "?"
Dim Response As HttpResponse = HttpContext.Current.Response
Dim jsonstr As String = DataTableToJSON(rtn)
Response.Write(callback & "({msg:'" & jsonstr & "'})")
Response.Flush()
Response.Close()
Return jsonstr Catch ex As Exception End Try
End Function
2.下面的代码我用了jdiy框架,如果你黏贴上去肯定会报错的!jdiy框架 你可以上网找找!我不贴网址了!只贴思路希望能帮下一个你解决 跨域解析json的问题!
<body>Place your content here</br>
<p>
登陆状态: <span id="fname"></span><br />
返回信息: <span id="lname"></span><br />
</p>
<script type="text/javascript">var txt=
<%
String str = new Url("http://api.cndns.com/sitestar/getTemplateCategories.aspx?username=cantect&otime=201302281136&checksum=5d3742d59bb86347d71b7145a6615f61").getHtml();
out.print(str);
%>;
document.getElementById("fname").innerHTML=txt.status
document.getElementById("lname").innerHTML=txt.message
</script>
</body>