来自url和回文的C#JSON

来自url和回文的C#JSON,c#,json,palindrome,C#,Json,Palindrome,以下是我的提示: 从远程URL检索JSON文件。您的解决方案应该从一个设置文件(app.config、web.config.etc)中获取此信息。(我有网址) 确定提供的字符串是否为回文。在评估字符串是否为回文时,将考虑字母数字字符 解析检索到的JSON文件,并将“strings”数组中的每个元素传递到步骤2中的函数中。您应该打印出字符串和结果 我是C#新手,我不知道如何从url读取json文件,然后将其用于函数。我几乎被困在如何开始这件事上。有什么建议吗 using System; using

以下是我的提示:

  • 从远程URL检索JSON文件。您的解决方案应该从一个设置文件(app.config、web.config.etc)中获取此信息。(我有网址)

  • 确定提供的字符串是否为回文。在评估字符串是否为回文时,将考虑字母数字字符

  • 解析检索到的JSON文件,并将“strings”数组中的每个元素传递到步骤2中的函数中。您应该打印出字符串和结果 我是C#新手,我不知道如何从url读取json文件,然后将其用于函数。我几乎被困在如何开始这件事上。有什么建议吗

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Net;
    namespace ConsoleApplication1
    {
    class Program
    {
    
        public static bool IsPalindrome(string value)
        {
            int min = 0;
            int max = value.Length - 1;
        //    while (true)
           {
                if (min > max)
                {
                    return true;
               }
               char a = value[min];
                char b = value[max];
                if (char.ToLower(a) != char.ToLower(b))
                {
                    return false;
                }
                min++;
                max--;
            }
        }
    
        static void Main() {
            using (WebClient webClient = new System.Net.WebClient())
            {
                WebClient n = new WebClient();
                var json = n.DownloadString("URL");
                string valueOriginal = Convert.ToString(json);
                //Console.WriteLine(json);
            }
    
            string[] array = {
    
              };
    
            foreach (string value in array)
            {
                Console.WriteLine("{0} = {1}", value, IsPalindrome(value));
            }
        }
    }
    }
    
    示例JSON:

    {
      "strings": [
        {
          "str": "mom",
          "result": "true"
        },
        {
          "str": "Taco Cat",
          "result": "true"
        },
        {
          "str": "university",
          "result": "false"
        },
        {
          "str": "Amore, Roma.",
          "result": "true"
        },
        {
          "str": "King are you glad you are king",
          "result": "false"
        }
      ]
    }
    

    以下是如何从URL获取json字符串:

    以下是如何反序列化json:

    下面是如何编写函数来检查字符串是否为回文:

    你在正确的轨道上。下面我已更新了您的代码以获得您所需的:

        class Program
    {
        private static void Main(string[] args)
        { 
            // Get JSON from URL
            var json = GetJasonFromUrl(Properties.Settings.Default.url);
    
            // De-serialize JSON into a list
            var deserlizedJson = DeserializeMyJson(json);
    
            // Go through each item in the list and determine if palindrome or not
            foreach (var item in deserlizedJson)
            {
                if (IsPalindrome(item.Str))
                    Console.WriteLine(item.Str + " is palindrome");
                else
                    Console.WriteLine(item.Str + " is not palindrome");
            }
        }
    
        private static string GetJasonFromUrl(string url)
        {
            string result;
    
            try
            {
                using (var webClient = new WebClient())
                {
                    result = webClient.DownloadString(url);
                }
            }
            catch (Exception)
            {
                result = string.Empty;
            }
    
            return result;
        }
    
        private static IEnumerable<Palindromes> DeserializeMyJson(string json)
        {
            return JsonConvert.DeserializeObject<IEnumerable<Palindromes>>(json);
        }
    
        // Assuming your function is tested and correct
        private static bool IsPalindrome(string value)
        {
            var min = 0;
            var max = value.Length - 1;
    
            while (true)
            {
                if (min > max)
                    return true;
                var a = value[min];
                var b = value[max];
    
                if (char.ToLower(a) != char.ToLower(b))
                    return false;
    
                min++;
                max--;
            }
        }
    }
    
    internal class Palindromes
    {
        public string Str { get; set; } = string.Empty;
        public bool Result { get; set; } = false;
    }
    
    类程序
    {
    私有静态void Main(字符串[]args)
    { 
    //从URL获取JSON
    var json=GetJasonFromUrl(Properties.Settings.Default.url);
    //将JSON反序列化到列表中
    var deserializedjson=DeserializeMyJson(json);
    //检查列表中的每一项,确定是否有回文
    foreach(反序列化djson中的var项)
    {
    if(IsPalindrome(项目Str))
    Console.WriteLine(item.Str+“是回文”);
    其他的
    Console.WriteLine(item.Str+“不是回文”);
    }
    }
    私有静态字符串GetJasonFromUrl(字符串url)
    {
    字符串结果;
    尝试
    {
    使用(var webClient=new webClient())
    {
    结果=webClient.DownloadString(url);
    }
    }
    捕获(例外)
    {
    result=string.Empty;
    }
    返回结果;
    }
    私有静态IEnumerable反序列化json(字符串json)
    {
    返回JsonConvert.DeserializeObject(json);
    }
    //假设您的功能经过测试并正确无误
    私有静态bool IsPalindrome(字符串值)
    {
    var min=0;
    var max=值。长度-1;
    while(true)
    {
    如果(最小值>最大值)
    返回true;
    var a=值[min];
    var b=值[max];
    if(char.ToLower(a)!=char.ToLower(b))
    返回false;
    min++;
    马克斯;
    }
    }
    }
    内部类回文
    {
    公共字符串Str{get;set;}=string.Empty;
    公共布尔结果{get;set;}=false;
    }
    
    要解析JSON,请阅读或(对于LINQ到JSON)。老实说,在互联网上快速搜索“如何在c#中阅读json”将为您提供足够多的阅读材料来理解它。。。并且应该完全回答您关于如何反序列化JSON的问题。如果你需要回文检测方面的帮助,你应该问另一个问题,这里的首选格式是。这是否回答了你的问题?从URL获取json时,我收到一个“Properties”错误,我假设您将URL放置在项目的应用程序设置中。您现在可以使用硬编码值替换它,直到您决定将其放置在何处,以便将来可以在不必触摸代码的情况下更改它。“设置”位于项目的“属性”下。