0

我有一个以 JSON 格式返回结果的网络服务 在 Javascript 中我想循环浏览这些结果,以便将它们显示给用户。

我已经定义了以下类:

Public Class PointsOfInterest
    Public Property hotspots() As List(Of Hotspot)
        Get
            Return m_hotspots
        End Get
        Set(value As List(Of Hotspot))
            m_hotspots = value
        End Set
    End Property
    Private m_hotspots As List(Of Hotspot)
    Public Property errorString() As String
        Get
            Return m_errorString
        End Get
        Set(value As String)
            m_errorString = value
        End Set
    End Property
    Private m_errorString As String
    Public Property errorCode() As Integer
        Get
            Return m_errorCode
        End Get
        Set(value As Integer)
            m_errorCode = value
        End Set
    End Property
    Private m_errorCode As Integer
End Class

Public Class Hotspot
    Private m_id As String
    Public Property id() As String
        Get
            Return m_id
        End Get
        Set(value As String)
            m_id = value
        End Set
    End Property

    Public Property anchor() As anchor
        Get
            Return m_anchor
        End Get
        Set(value As anchor)
            m_anchor = value
        End Set
    End Property
    Private m_anchor As anchor


    Public Property text() As textprop
        Get
            Return _text
        End Get
        Set(value As textprop)
            _text = value
        End Set
    End Property
    Private _text As textprop


    Public Property imageURL() As String
        Get
            Return _imageURL
        End Get
        Set(value As String)
            _imageURL = value
        End Set
    End Property
    Private _imageURL As String

    Public Property actions() As List(Of action)
        Get
            Return _actions
        End Get
        Set(value As List(Of action))
            _actions = value
        End Set
    End Property
    Private _actions As List(Of action)

End Class

Public Class anchor
    Public Property geolocation() As geoloc
        Get
            Return _geoloc
        End Get
        Set(value As geoloc)
            _geoloc = value
        End Set
    End Property
    Private _geoloc As geoloc

End Class

Public Class textprop
    Public Property title() As String
        Get
            Return _title
        End Get
        Set(value As String)
            _title = value
        End Set
    End Property
    Private _title As String
    Public Property description() As String
        Get
            Return _description
        End Get
        Set(value As String)
            _description = value
        End Set
    End Property
    Private _description As String
    Public Property footnote() As String
        Get
            Return _footnote
        End Get
        Set(value As String)
            _footnote = value
        End Set
    End Property
    Private _footnote As String

End Class


Public Class geoloc
    Public Property lat() As String
        Get
            Return _lat
        End Get
        Set(value As String)
            _lat = value
        End Set
    End Property
    Private _lat As String
    Public Property lon() As String
        Get
            Return _lon
        End Get
        Set(value As String)
            _lon = value
        End Set
    End Property
    Private _lon As String
End Class

Public Class action
    Public Property uri() As String
        Get
            Return _uri
        End Get
        Set(value As String)
            _uri = value
        End Set
    End Property
    Private _uri As String

    Public Property label() As String
        Get
            Return _label
        End Get
        Set(value As String)
            _label = value
        End Set
    End Property
    Private _label As String
    Public Property contentType() As String
        Get
            Return _contentType
        End Get
        Set(value As String)
            _contentType = value
        End Set
    End Property
    Private _contentType As String
    Public Property method() As String
        Get
            Return _method
        End Get
        Set(value As String)
            _method = value
        End Set
    End Property
    Private _method As String
    Public Property activityType() As Integer
        Get
            Return _activityType
        End Get
        Set(value As Integer)
            _activityType = value
        End Set
    End Property
    Private _activityType As Integer
    Public Property showActivity() As Boolean
        Get
            Return _showActivity
        End Get
        Set(value As Boolean)
            _showActivity = value
        End Set
    End Property
    Private _showActivity As Boolean
    Public Property activityMessage() As String
        Get
            Return _activityMessage
        End Get
        Set(value As String)
            _activityMessage = value
        End Set
    End Property
    Private _activityMessage As String

End Class   

我通过 JSON 中的 Web 服务返回这些:http ://www.wunderwedding.com/weddingservice.svc/api/?t=1&cid=1&pid=6&lat=52&lng=5&d=10000&city=nijmegen&field1=0&field2=0&field3=0&field4=0&hasphoto= 0&hasvideo=0&minrating=0&lang=nl

现在,例如,如果我想读取第三个结果的 tel 属性(在本例中为 0348551532),我该怎么做?是不是类似于 XSLT,我可以在其中使用表达式进行选择?

4

1 回答 1

1

在 JavaScript 中,我假设您使用支持 AJAX 的 jQuery 或 ExtJS 之类的东西。在客户端获得 JSON 后,您将对 Web 服务结果进行解码(如果您在没有特殊工具包的情况下读取 JSON,则使用 E​​xt.decode 或 eval(""))。

一旦您对 JSON 进行解码,它就可以在 JavaScript 中轻松使用。

例子:

var json = [Function that decodes JSON text];
var uriInfo = json.hotspots[2].actions[1].uri;

如果您使用的是 FireFox,您可以安装一个名为 FireBug 的插件。这将允许您完成这类事情。使用该工具,您可以调用 console.dir(json); 在 JavaScript 中查看整个结构,如 javascript 等。

于 2012-05-30T22:55:15.193 回答