#c#
#c#
Вопрос:
как я могу получить оставшийся текст / значения ImageString
и вернуть его в переменной? В моем текущем коде ниже я получил ошибку.
Примечание: ImageString = data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8SEhEPERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEUHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wAARCAOEAlgDASIAAhEBAxEB/8QAHQABAAICAwEBAAAAAAAAAAAAAAUGAwQBAgcICf/EAEkQAQABAwMCAgcCDAMFBgcAAAABAgMEBREhMTIGEgciQVFhcYETkQgUIzNCUnKCobHB0RVikkNjc7LwFhckNKL
var _strings= { response = "True", name = "John", ImageString = "(random text here (1-1000 of characters maybe?))"};
var _split = _strings.Substring(_strings.IndexOf("ImageString"), _strings.Length);
«Индекс и длина должны ссылаться на местоположение в строке.
Ожидаемый результат: я хочу получить весь текст из «ImageString»
Комментарии:
1. Можете ли вы также поделиться тем, какой вывод вы хотите получить, на основе предоставленного ввода?
2. Мистический
qweqwe
пришел и испортил весь ваш день.._strings.Substring(_strings.IndexOf("ImageString"), _strings.Length);
3. ваш текст
_strings
выглядит какJSON
строка. Было бы лучше выполнить десериализацию вObject
и получить значение оттуда.4. Что это за строка? var _strings= { response = «True», name = «John», ImageString = «(здесь случайный текст (может быть, 1-1000 символов?))»}; это выглядит как анонимный объект. Также при подстроке вы должны быть на 100% уверены, что indexOf(«ImageString») будет равен нулю или выше, потому что, если он не существует, он вернет -1, и вы не сможете начать подписку с минус единицы и _string . длина представляет собой длину текста, но индекс для последнего символа равен _string . длина-1
Ответ №1:
В вашем конкретном случае вы можете использовать сериализатор JSON:
public class Data
{
public string ImageString { get; set; }
}
var data = Newtonsoft.Json.JsonConvert.Deserialize<Data>(_strings);
var myImageString = data.ImageString;
Комментарии:
1. «Недопустимый символ после синтаксического анализа имени свойства. Ожидалось ‘:’, но получено: =. Path «, строка 1, позиция 14».
2. @FaceLessNoOne, вы можете добавить к ответу код, который вы пробовали, и сообщение об ошибке.
3. Я добавил выходные данные моей строки. и ошибка, с которой я сталкиваюсь после того, как тестирую тот же код, что и вы.
Ответ №2:
var _strings= { response = "True", name = "John", ImageString = "(random text here (1-1000 of characters maybe?))"};
Приведенное выше выглядит как анонимный объект, но я предполагаю, что под ним вы подразумеваете структуру вашего текста.
var imageStringIndex= _strings.IndexOf("ImageString");
var _split = _strings.Substring(imageStringIndex<0?0:imageStringIndex, _strings.Length - 1);
или
var _split = _strings.Split("ImageString".ToCharArray()).Last();
вы оба работаете в своем случае
Ответ №3:
Если я вас правильно понял, и вы настаиваете на string
манипуляциях (не синтаксическом анализе Json)
string _strings =
"{ response = "True", name = "John", ImageString = "bla-bla-bla" };";
string toFind = "ImageString";
int p = _strings.IndexOf(toFind);
// bla-bla-bla
string remain = p < 0
? "" //TODO: Not found at all (shall we return an empty or entire string?)
: _strings
.Substring(p toFind.Length)
.TrimStart(' ', '=') // to be on the safe side: what if data starts from =
.TrimStart('"', ' ')
.TrimEnd('}', ';', ' ')
.TrimEnd('"', ' ');
Ответ №4:
Первая проблема, которую я вижу, заключается в том, что
var _strings= { response = "True", name = "John", ImageString = "(random text here (1-1000 of characters maybe?))"};
Это не строка, а попытка создания анонимного объекта?
Если это так, вы можете объявить объект с помощью:
var _strings = new { response = "True", name = "John", ImageString = "(random text here (1-1000 of characters maybe?))" };
Затем получить доступ к любому свойству объекта, используя стандартный синтаксис c #:
var imageString = _strings.ImageString;
Ответ на ваш вопрос во многом зависит от того, откуда поступает информация, поскольку вы можете объявить ее и манипулировать ею тысячью различных способов, если у вас есть над ней контроль.