解决  大JSON响应 - 显示某些项目

颂歌

众所周知的成员
加入
2020年12月11日
消息
100
编程经验
Beginner
我正在召集一个很长的API,尽管我的最佳努力,但我一直无法让这些例子工作,我并不完全肯定从这里去哪里。

我没有问题作为字符串获取JSON。当我追逐课程时,我得到了下面的(尽管它更长时间)。

C#:
public class ItemModel
{
    public class Rootobject
    {
        public Request request { get; set; }
        public Response_Status response_status { get; set; }
    }
   
    public class Request
    {
        public object testOne { get; set; }
        public string testTwo { get; set; }
        public Resolution resolution { get; set; }
        public Item item { get; set; }
    }
    public class Resolution
    {
        public object[] resolution_attachments { get; set; }
    }
    public class Item
    {
        public string name { get; set; }
        public string id { get; set; }
    }
}

现在我的问题是我想从项目中获取名称和ID。

但在谷歌上花了几个小时后,堆栈溢出甚至纽特罗斯特的文档,我无法搞定。

我试过jobject,jtoken似乎都无法检索第3个?来自JSON的级别项目 - 我说3rd,因为它看起来是项目类在请求类中,它本身就是rootobject类。当我尝试了jobject / jtoken(不记得现在我已经使用了几个小时) - 我收到了它返回的错误:{ - 这意味着它没有找到底层名称,而是只有项目后的两个字符在:

JSON:
"item":{ "name": "Bob", "id": "1"},

任何指针都会被感激地收到,因为我的大脑开始受伤。

编辑以原始表单添加JSON示例:

JSON:
{
    "request":
    {
        "test1": null
        "test2": "one"
        "test3":
        {
            "test4": 1
            "test5": 3
        },
        "Test6": null,
        "Test7":
        {
            "name": "Ted",
            "id": "tedID"
        },
        "item":
        {
            "name": "itemName"
            "id": "itemID"
        },
    }
}
 
Last edited:

跳伞运动员

工作人员
加入
2019年4月6日
消息
2,716
地点
切萨皮克,va.
编程经验
10+
你确定的是json原始形式吗?它似乎在多个地方缺少逗号,在另一个地方有一个额外的逗号。请给我们真实的东西或至少一些代码和相应的JSON,最小化你的问题。试图解释或给予不精确的信息只是浪费每个人的时间。
 

颂歌

众所周知的成员
加入
2020年12月11日
消息
100
编程经验
Beginner
比特很难这样做,这是巨大的。

我在下面打字了一条短段进行了更好的工作 - 我试图在我的第一个帖子中将它置于它,以使其更容易阅读 - 但它正在像页面一样,我正在谈论3页的3页。

我希望在Visual Studio中使用JSON来粘贴特别粘贴的方法。要为您提供一个想法,请求下有34个条目,并在此之下29个单独的课程。

我尝试过JsonConvert,看起来几乎工作了......但返回空值?

C#:
var json = await response.Content.ReadAsStringAsync();

Item token = JsonConvert.DeserializeObject<Item>(json);

这回到了null,我不确定为什么。

当我断开它时,并查看JSON Visualizer(JSON)中的字符串时,它会显示请求和列表"item" and under that "name" and "id"在这个阶段都有一个值。

从上面的代码中的令牌有"name" and "id"所以它抓住了适当的约定,但两者都是空的吗?

它拍摄了公共类项目,从内部,名称和ID中获取属性,但由于某种原因尚未将其分配为反序列化进程的一部分?

这是代码的片段,匿名但准确地键入,尽管我不确定它会有多少帮助。

删除了代码,因为我对发布这么大的东西并不是我的帖子。
 
Last edited:

颂歌

众所周知的成员
加入
2020年12月11日
消息
100
编程经验
Beginner
永远和我的方式.....

发布某些东西必须真正帮助我通过......但是对于遇到这个的任何人:

C#:
var json = await response.Content.ReadAsStringAsync();

Rootobject token = JsonConvert.DeserializeObject<Rootobject>(json);

textbox1.Text = $"Returns { token.request.item.name.name..name. }";"

给了我我想要的东西......
 

跳伞运动员

工作人员
加入
2019年4月6日
消息
2,716
地点
切萨皮克,va.
编程经验
10+
我很高兴你讨论了它。

如果您发现论坛上的发布或准备将后续发布到论坛正在帮助您解决自己的问题,我强烈推荐阅读:

那里有很多有用的位,可以帮助您准备自己的问题,并且通常在准备问题的过程中,帮助您在问题上零,并找到一个答案。我知道我发现当我没有一个时真的很有用 橡皮鸭 .
 

颂歌

众所周知的成员
加入
2020年12月11日
消息
100
编程经验
Beginner
我很高兴你讨论了它。

如果您发现论坛上的发布或准备将后续发布到论坛正在帮助您解决自己的问题,我强烈推荐阅读:

那里有很多有用的位,可以帮助您准备自己的问题,并且通常在准备问题的过程中,帮助您在问题上零,并找到一个答案。我知道我发现当我没有一个时真的很有用 橡皮鸭 .

哇读书就像旅行回来时,我第一次加入互联网欢呼时。

有点解释我在哪里......

1,我不立即来到这里,我搜索几个小时,我读取我可以在互联网上找到的一切,先找到一个解决方案。当我不知道下一个去哪里时,我来到这里。

2,我不会停止发帖。我继续阅读,搜索和测试代码,看看我是否可以找到答案 - 因为你们可能很忙。

3,有时候你会问我的东西,会提示我记得我在2.5小时前尝试过的东西并重新考虑它,并重新尝试。在这里发生了这一点,我尽早尝试了jsonconvert,但撞到了一堵砖墙,你说,给我们一些代码,让我回到重新创建那个代码 - 以便我可以注意到错误。这反过来又与我在临时中获得的一些知识,让我重新考虑代码以尝试新事物。

4,与这个问题有关,如果你知道反序列化和"token.request.item.name.name..name."语法 - 您需要知道的一切,以提供答案在第一个问题中。

特别是这将尊重你这一点:

"检索第3个?来自JSON的级别项目 - 我说3rd,因为它看起来是项目类是在请求类中,它本身就在rootobject类中"

4,我已经搜索了几个小时,我从未见过语法"token.request.item.name.name..name."。我读了纽特罗斯特,堆栈溢出,代码项目,我谷歌入了15个不同的东西,并前往众多网站。不是我遇到了你可以超越的想法"token.name"随着JSON Deserialization。

这可能是我的搜索技能的失败,可能很难搜索一件事,当具有类似的名字/概念的另一件事填充任何搜索结果的前5个页面(嵌套不是一个好的搜索词)。它可能出现在那里,但找到它?到目前为止,我没有设法找到此目的的任何例子。

我真的很喜欢橡皮鸭,我肯定会在未来使用 - 基本上写这些帖子是我的橡皮鸭 - 但我将在下次发布前做橡皮鸭。
 
最佳 底部