使用正则表达式或JSON

时间:2016-12-13 22:56:17

标签: c# json regex

我有以json格式的以下数据。

{
  "predictions": [
    {
      "prediction": "76A Fonthill Road, Aberdeen, Aberdeenshire, AB11 6UL",
      "refs": "52833271",
      "complete": false
    },
    {
      "prediction": "76B Fonthill Road, Aberdeen, Aberdeenshire, AB11 6UL",
      "refs": "52833272",
      "complete": false
    }
  ],
  "status": "Ok"
}

我尝试过使用Json.net,但是我无法得到我需要的数据,我想要地址

76A Fonthill Road, Aberdeen, Aberdeenshire, AB11 6UL

我也尝试过使用

regex Regex Exp = new Regex("\"prediction\":\"(.*),\"refs\""); 

但匹配

  

76A Fonthill Road,Aberdeen,Aberdeenshire,AB11 6UL“,”refs“:”52833271“,”complete“:false},{”forecast“:”76B Fonthill Road,Aberdeen,Aberdeenshire,AB11 6UL“,”refs “

它在PHP中使用json_decode()进行了尝试,使用正则表达式我可以正确地提取所有数据。

  

76A Fonthill Road,Aberdeen,Aberdeenshire,AB11 6UL \ n   阿伯丁,阿伯丁Fonthill路76B号,AB11 6UL \ n *

我需要c#的解决方案。

1 个答案:

答案 0 :(得分:3)

创建一组与您的JSON匹配的类。

 public class Predictions
{
    public string Prediction { get; set; }
    public string Refs { get; set; }
    public bool Complete { get; set; }
}

public class PredictionsList
{
    public List<Predictions> Predictions { get; set; }
    public string Status { get; set; }
}

然后使用JsonConvert反序列化

  var dataDictionary = JsonConvert.DeserializeObject<PredictionsList>(json);