如何阅读JSON数据?

时间:2017-05-17 07:04:33

标签: c# asp.net json

这是json数据格式吗?

string json = {"answer":"Line 1","mark": 1},{"answer":"Line 3","mark": 1}

我尝试下面的代码,但它只使用一个参数。例如:{"answer":"Line 1","mark": 1}。我尝试拆分json字符串,但这不是最佳方式。

JObject jObject = JObject.Parse(json );

string asw = jObject["answer"].ToString();
int mark = (int)jObject["mark"];

txtAnswer.Text = asw + "////" + mark + "\n";

3 个答案:

答案 0 :(得分:3)

这是一个非常基本的JSON问题,任何数量的教程都可以为您解答。

JSON是否有效?不,JSONLint可以告诉你。

你怎么看?

首先,将JSON包装在方括号中,使其有效。

然后,定义class以将记录存储在:

public class Something
{
    public string answer { get; set; }
    public string mark { get; set; }
}

最后,使用JSON.Net将您的字符串转换为这些记录的列表。

string json = "[{\"answer\":\"Line 1\",\"mark\": 1},{\"answer\":\"Line 3\",\"mark\": 1}]";

List<Something> records = JsonConvert.DeserializeObject<List<Something>>(json);         //  JSON.Net

foreach (Something record in records)
{
    System.Diagnostics.Trace.WriteLine(string.Format("Answer: {0}, Mark: {1}", record.answer, record.mark));
}

这很容易。

答案 1 :(得分:1)

  

这是json数据格式吗?

string json = {"answer":"Line 1","mark": 1},{"answer":"Line 3","mark": 1}

不,你所拥有的东西看起来不像有效的C# JSON。尝试将其放入JSON数组中,然后放入正确的字符串中:

 string json = "[{\"answer\":\"Line 1\",\"mark\": 1},{\"answer\":\"Line 3\",\"mark\": 1}]";

(希望我能在那里逃跑。)

这是以下JSON的C#转义等价物:

[{"answer":"Line 1","mark": 1}, {"answer":"Line 3","mark": 1}]

然后阅读JObject.Parse()了解更多信息。

答案 2 :(得分:-3)

是的,它是json格式。但是有多个对象。你没有循环它。一种方法可能是

dynamic dynJson = JsonConvert.DeserializeObject(json);
foreach (var item in dynJson)
{
    Console.WriteLine("{0} {1}\n", item.answer, item.mark);
}