Здравствуйте, делаю 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е"
(последняя Е русская). Выясняйте сами, откуда она появилась.
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть вариант с созданием префаба в котором лежит GUIText со скриптом, но тут свои трудности
Всем приветВозможнго, это вопрос не по шарпам, но так как пишу приложение на #, оставлю это здесь
Всем доброго времени суток, имеется форма на ней pictureBox1 и пара textBox, на pictureBox'е отрисовывается помещение, как можно взять значение из textBox'ов,...