在线工具 在线编程 在线白板 在线工具 在线编程 在线白板

c#如何获得返回json数组中的数组

目前我只能这样 var result = client.GeneralBasic(image, null);把返回的json赋给了result,可以用console.writeline(result["words_result"])来输出words_result里的所有words,我想把words_result里面的words都获取怎么办?
最新回答
意志以颓废

2024-11-07 06:55:06

推荐使用Newtonsoft.Json,这个可以从nuget获取

有三个方案:

  1. 你将json结果复制,然后编辑→选择性粘贴→将JSON粘贴为类

然后使用

var result = JsonConvert.DeserializeObject<Jobject>(str);//jobject是你粘贴后生成的类型

把结果反序列为对象

2.创建匿名对象

var worlds = new {words = ""};
var worlds_result = Enumerable.Repeat(worlds, 1).ToArray();
var value = new { log_id = 123,words_result_num=2, worlds_result };
var str = string.Empty;
 
var result = JsonConvert.DeserializeAnonymousType(str, value);

3.使用Newtonsoft.Json将json

字符串
转化为JObject手动解析获得想要的数据

追问
呃,那怎么把如图的 青岛啤酒 和 TSINGTAO 这两个字符串赋值给2个string变量
追答
var words1 = result.worlds_result[0].words;//TSINGTAO
var words2 = result.worlds_result[1].words;//青岛啤酒

这就是简单的获得对象的属性值...

words_result是一个对象数组,数组怎么获得值这个就怎么获得..

追问

(⊙﹏⊙)还是发个图比较清楚。。。试了你的方法好像没有用额,可能我没弄对。

追答

如果没用,那你也可以把你出错的贴出来

我已经说的很清楚了,如果你还是不明白,那就是你基础太弱;你可以让一个会编程的亲自帮你弄

如果你想自己弄懂,那你至少要知道:

  1. 如何从nuget引用包

  2. 对象、数组是什么意思,如何获得它们的值

  3. 如何使用别人的代码,出错后如何修改

  4. 如何调试,如何查看变量的值

  5. 如何提问,以及如何搜索

雨薇之恋

2024-11-07 07:02:35

反序列化成对象即可