首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从反序列化Json数组读取数据

从反序列化Json数组读取数据
EN

Stack Overflow用户
提问于 2017-05-12 13:26:03
回答 1查看 66关注 0票数 1

我目前正在设计一个机器人,它以Json的形式接收数据,在将它反序列化成数组之后,我尝试搜索信息,这就是问题所在。

用于反序列化的ProjectInfo类

代码语言:javascript
运行
复制
namespace InfoClass
{
    public class ProjectInfo
    {
        public int Id { get; set; }
        public string companyName { get; set; }
        public string projectName { get; set; }
        public string clientName { get; set; }
        public string status { get; set; }
        public int sprintPhase { get; set; }
    }
}

我主要的Json读物课

代码语言:javascript
运行
复制
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace InfoClass
{
    public class TestInfo
    {

        string json;
        public TestInfo()
        {

            if (json == null)
                InitializeJson();
        }

        private void InitializeJson()
        {
            json = @"{'CompanyData':[{id : 1 , companyName : 'Company1', projectName : 'TestProject1', clientName : 'TestClient1', sprintPhase : 2, status : 'Ongoing'},
                    {id : 2 , companyName : 'Company2', projectName : 'TestProject2', clientName : 'TestClient2', sprintPhase : 1 , status : 'Waiting on Designs'},
                    {id : 3 , companyName : 'Company3', projectName : 'TestProject3', clientName : 'TestClient3', sprintPhase : 5, status : 'Live'}]}";
        }


        public string GetStatus()
        {
            string status = "";
            ProjectInfo[] jsonArray = JsonConvert.DeserializeObject<ProjectInfo[]>(json);
            foreach (var companies in jsonArray)
            {
                foreach (var company in companies.projectName)
                {
                    if (company.Equals("TestProject3"))
                    {
                        status = "found";
                    }
                    else
                    {
                        status = "not found";
                    }
                }

            }
            return status;
        }
    }
}

应用程序的最终目标是让用户输入一个项目名称/公司名称,然后能够看到sprintPhase、status和任何其他与项目相关的信息。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-12 13:31:19

您可以使用Linq (添加using System.Linq;)来筛选jsonArray

代码语言:javascript
运行
复制
var userFilter = jsonArray.FirstOrDefault(x => x.company == "UserInputCompanyName" || x.projectName == "UserCompanyName");
if(userFilter != null)
{
  // show stuff to user of userFilter
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43938881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档