日期:2014-05-16  浏览次数:20874 次

asp 读取 json 列表
本帖最后由 chinaurls 于 2014-05-05 17:23:26 编辑
读取页面如:http://www.xxx.com/?no=710000
读取到的结果:
{"resultcode":"200","reason":"Return Successd","result":[{"id":"1","province":"陕西省","city":"西安市","area":"灞桥区","address":"狄寨镇南寨村"}{"id":"2","province":"陕西省","city":"西安市","area":"灞桥区","address":"狄寨镇潘村"}{"id":"3","province":"陕西省","city":"西安市","area":"灞桥区","address":"狄寨镇伍坊村"}],"error_code":0}



怎么用asp程序读取URL再用程序读取出结果,求完整ASP程序
------解决方案--------------------
原来不是发过了?知识变成数组了而且,方法都差不多http://bbs.csdn.net/topics/390776429


<script runat="server" language="jscript">
    function getJSON(v) { return eval('(' + v + ')'); }
    function toArray(a) {//JSON对象数组格式的字符串
        var dic = Server.CreateObject("Scripting.Dictionary");
        for (var i = 0; i < a.length; i++) {
            var obj = Server.CreateObject("Scripting.Dictionary");
            for (x in a[i]) obj.Add(x, a[i][x]);
            dic.Add(i, obj);
        }
        return dic;
    }
</script>
<%
'==================================================
'从2进制数据流生成内容
'==================================================
Function BytesToBstr(strBody,CodeBase)
  dim obj
  set obj=Server.CreateObject("Adodb.Stream")
  obj.Type=1
  obj.Mode=3
  obj.Open
  obj.Write strBody
  obj.Position=0
  obj.Type=2
  obj.Charset=CodeBase
  BytesToBstr=obj.ReadText
  obj.Close
  set obj=nothing
End Function
function downpage(url)
  set xhr=server.CreateObject("microsoft.xmlhttp")
  xhr.open "get",url,false
  xhr.send
  downpage=BytesToBstr(xhr.responsebody,"gb2312")'注意你那个页面的编码,要不可能出乱码
end function

   


's改为用Microsoft.XMLHTTP动态获取
's=downpage("http://www.xxx.com/?no=710000")
s="{""resultcode"":""200"",""reason"":""Return Successd"",""result"":[{""id"":""1"",""province"":""陕西省"",""city"":""西安市"",""area"":""灞桥区"",""address"":""狄寨镇南寨村""},{""id"":""2"",""province"":""陕西省"",""city"":""西安市"",""area"":""灞桥区"",""address"":""狄寨镇潘村""},{""id"":""3"",""province"":""陕西省"",""city"":""西安市"",""area"":""灞桥区"",""address"":""狄寨镇伍坊村""}],""error_code"":0}"
set o=getJSON(s)
if o.resultcode="200" then
set result=toArray(o.result)

for i=0 to result.count-1
  response.Write result(i)("province")&"-"&result(i)("address")&"<br/>"
next

set result=nothing
end if
set o=nothing
 %>