Здравствуйте, делаю get запрос
string k = "helo thera";
var response = await client.PostAsync("http://speller.yandex.net/services/spellservice.json/checkText?text="+k+"&callback=fix_spell", content);
var responseString = await response.Content.ReadAsStringAsync();
получаю json с нужной мне заменой,
fix_spell([{"code":1,"pos":0,"row":0,"col":0,"len":4,"word":"helo","s":["hello"]},{"code":1,"pos":5,"row":0,"col":5,"len":6,"word":"thera\u0435","s":["there"]}])
Как мне теперь поменять в переменной k:
helo на hello
thera на there?
Окей, для начала, вам нужно установить через nuget JSON.NET. (Имя пакета Newtonsoft.Json, устанавливать так.)
Затем, вам нужно определить класс, в который будет происходить десериализация. Исходя из описания API, вам приходит список таких классов:
class Error
{
public int code, pos, row, col, len;
public string word;
public List<string> s;
}
Для разбора при помощи JSON.NET используйте
var errorList = JsonConvert.DeserializeObject<List<Error>>(responseString);
Затем, имея список, вы можете пройти его с конца (понятно, почему?), и заменять подстроки.
var sb = new StringBuilder(k);
foreach (var err in list.OrderByDescending(err => err.pos))
{
sb.Remove(err.pos, err.len);
sb.Insert(err.pos, err.s.First());
}
k = sb.ToString();
Да, вы отправляете строку неправильно, потому что вам пришёл результат не со строкой "thera", а со строкой "theraе" (последняя Е русская). Выясняйте сами, откуда она появилась.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости