2017-03-17 56 views
0

如何从远程json如asp.net(4.5)中的http://www.example.com/api/stats.json使用vb输出项目“total_sales”或totals.orders?阅读并获取远程json的项目值

{ 
    "sales": { 
    "total_sales": "556.20", 
    "net_sales": "402.35", 
    "average_sales": "402.35", 
    "total_orders": 12, 
    "total_items": 24, 
    "total_tax": "88.81", 
    "total_shipping": "65.04", 
    "total_refunds": 0, 
    "total_discount": "0.00", 
    "totals_grouped_by": "day", 
    "totals": { 
     "2017-03-17": { 
     "sales": "556.20", 
     "orders": 12, 
     "items": 24, 
     "tax": "88.80", 
     "shipping": "65.04", 
     "discount": "0.00", 
     "customers": 0 
     } 
    }, 
    "total_customers": 0 
    } 
} 

回答

0

使用Json.net则:

Dim sales as JObject = JObject.Parse(yourJsonString) 
Dim totSales as String = Cstr(sales.GetValue("total_sales")) 
+0

是 “yourJsonString” 的网址是什么?认为必须有流技术。 – cysus

+0

yourJsonString包含json,找到如何从url下载它 – Tomek

0

我相信这是你要找的内容。使用您的JSON字符串,我检索总销售额。

首先添加引用:

Imports System.Web.HttpContext 
Imports System.Runtime.Serialization.Json 

下获取远程JSON,我假设的反应是你提供的字符串。我们使用HttpWebRequest来获得远程JSON。

Dim req As HttpWebRequest = WebRequest.Create("www.SomeURL.com/?Parameter=somevalue") 
    Dim resp As HttpWebResponse = req.GetResponse() 

    Dim enc As Encoding = System.Text.Encoding.GetEncoding(1252) 
    Dim loResponseStream As StreamReader = New StreamReader(resp.GetResponseStream(), enc) 
    Dim Response As String = loResponseStream.ReadToEnd() 
    Dim jss As JavaScriptSerializer = New JavaScriptSerializer() 
    Dim dict As Object = jss.Deserialize(Of Dictionary(Of String, Object))(Response) 
    Dim KeyValue As String = (dict("sales")("total_sales")) 
    loResponseStream.Close() 

R/ 普雷斯科特...