2015-07-14 4 views
1

Итак, я работаю с umbraco и использую тег datatype. Я пытаюсь использовать все теги, добавленные к данному узлу, и помещая их в массив строк, но когда я получаю значение, оно всегда выглядит следующим образом:C# Преобразование строки в массив

«[1] Tag1 \", \ " Tag2 \ "]"

Как преобразовать эту строку массива в обычный массив? Все, что я получил до сих пор была строкой отдельных символов

+1

Можете ли вы показать, что вы пробовали? – blackmind

+0

Как вы можете получить эту строку? Вы используете TagService? Любой случай, когда вы вызываете '.ToString()', где вы не должны это делать? – sloth

+0

Даже объект, когда я его вызывал, как этот content.GetPropertyValue («теги») предоставил строку, возможно, потому, что я сохранил ее как json. Пытаясь получить все это с угловатым, и я думаю, что я немного смешался. –

ответ

2

формат Массив вы в качестве примера выглядит как часть объекта JSON.

Вы можете использовать JSON.net library для синтаксического анализа маркера объекта JSON.

var array = JArray.Parse(tagString).Values<string>(); 

Полный пример доступен here.

+1

Это то, что я искал, спасибо. Я пробовал делать эти замены символов, но я был обеспокоен необычными персонажами. Иронически первый тег, с которым я работаю, уже использует необычный персонаж, одну цитату –

4

Вы можете попробовать:

string[] newArray = item.Replace("\"", "").Replace("[", "").Replace("]", "").Split(','); 

Это будет выводиться как Tag1, Tag2 и т.д. ...

Example

Надеется, что это помогает ,

+0

Тогда у вас будет только '[" Tag1 "и' "Tag2"] ', не так ли? – cubrr

+0

Это был пример. –

+0

Уверен, и это начало к решению. Не считаете ли вы, что это было бы лучше, чем комментарий, если он не ответил на вопрос? – cubrr

2

Используйте этот

var tagString = "[\"Tag1\",\"Tag2\",\"Tag3\",\"Tag4\"]"; 
var tags = tagString.Trim().TrimStart('[').TrimEnd(']').Split(','); 
Смежные вопросы