来自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
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放置在项目的应用程序设置中。您现在可以使用硬编码值替换它,直到您决定将其放置在何处,以便将来可以在不必触摸代码的情况下更改它。“设置”位于项目的“属性”下。