C# JSON 来自 url 和回文
C# JSON from url and palindromes
这是我的提示:
从远程 URL 检索 JSON 文件。您的解决方案应该从设置文件(app.config、web.config 等)中提取它。 (我有url)
判断提供的字符串是否为回文。评估字符串是否为回文时将考虑字母数字字符。
- 解析检索到的 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 字符串:如何从 url 中获取 json 字符串?
以下是反序列化 json 的方法:Deserialize an Object
下面是编写函数来检查字符串是否为回文的方法:Check if a string is a palindrome
你走在正确的轨道上。下面我更新了您的代码以获得您需要的内容:
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;
}
这是我的提示:
从远程 URL 检索 JSON 文件。您的解决方案应该从设置文件(app.config、web.config 等)中提取它。 (我有url)
判断提供的字符串是否为回文。评估字符串是否为回文时将考虑字母数字字符。
- 解析检索到的 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 字符串:如何从 url 中获取 json 字符串?
以下是反序列化 json 的方法:Deserialize an Object
下面是编写函数来检查字符串是否为回文的方法:Check if a string is a palindrome
你走在正确的轨道上。下面我更新了您的代码以获得您需要的内容:
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;
}