0

这是从“JNJ”和“ADP”股票信息请求返回的数据。

var quote = new Object(); 
    quote['JNJ'] = {
    Ticker: 'JNJ', 
    Valoren: 943981, 
    ExchangeCode: 321, 
    Exchange: 'NY', 
    ExchangeName: 'New York Stock Exchange', 
    ExchangeShortName: 'NYSE', 
    TradeTime: 1375906505,
    Volume: 9052146, 
    Last: 93.66, 
    Open: 93.60, 
    High: 94.03, 
    Low: 93.47,
    PrevClose: 93.81, 
    Change: -0.15, 
    ChangePercent: -0.1599, 
    Bid: 93.66,
    Ask: 93.68, 
    BidSize: 2500, 
    AskSize: 800, 
    Name: 'Johnson & Johnson',
    ShortName: 'Johnson', 
    ISIN: 'US4781601046', 
    SharesOutstanding: 2818073863
}; 
quote['ADP'] = {
    Ticker: 'ADP', 
    Valoren: 910042,
    ExchangeCode: 537, 
    Exchange: 'NQ', 
    ExchangeName: 'Nasdaq Stock Market', 
    ExchangeShortName: 'Nasdaq', 
    TradeTime: 1375905600, 
    Volume: 1460941, 
    Last: 71.99, 
    Open: 72.11, 
    High: 72.28, 
    Low: 71.67, 
    PrevClose: 72.24, 
    Change: -0.25, 
    ChangePercent: -0.3461, 
    Bid: 71.99, 
    Ask: 72.00, 
    BidSize: 9300, 
    AskSize: 300, 
    Name: 'Automatic Data Processing',
    ShortName: 'Automatic Data', 
    ISIN: 'US0530151036', 
    SharesOutstanding: 485222417
}; 
eval('updateQuotes(quote)');

我是这方面的新手。我已经尝试过 json.net,但我继续收到错误。它似乎不是正确的 json。我想也许在“{”之前和“}”之后剥离所有东西可能会起作用,但到目前为止还没有运气。任何帮助或想法将不胜感激。

编辑:通过将其限制为单一股票,然后剥离“{”之前和“}”之后的所有内容,我可以使用以下方法很好地解析它:

string input = json;
var jss = new JavaScriptSerializer();
Dictionary<string, string> sData = jss.Deserialize<Dictionary<string, string>>(json);
string _Ticker = sData["Ticker"].ToString();
string _Last = sData["Last"].ToString();
Console.WriteLine(_Ticker + "  " + _Last);
4

1 回答 1

1

尝试删除最后一个eval('updateQuotes(quote)')还要检查您要反序列化的对象是否具有这种格式

public class RootObject
{

public string Ticker { get; set; }
public int Valoren { get; set; }
public int ExchangeCode { get; set; }
public string Exchange { get; set; }
public string ExchangeName { get; set; }
public string ExchangeShortName { get; set; }
public int TradeTime { get; set; }
public int Volume { get; set; }
public double Last { get; set; }
public double Open { get; set; }
public double High { get; set; }
public double Low { get; set; }
public double PrevClose { get; set; }
public double Change { get; set; }
public double ChangePercent { get; set; }
public double Bid { get; set; }
public double Ask { get; set; }
public int BidSize { get; set; }
public int AskSize { get; set; }
public string Name { get; set; }
public string ShortName { get; set; }
public string ISIN { get; set; }
public int SharesOutstanding { get; set; }
}

您可以使用此http://json2csharp.com/将任何 json 字符串验证为 C# 对象

于 2013-08-07T21:41:54.080 回答