2016-07-18 4 views
-3

У меня есть функция, которая возвращает список строкКак создать массив строк из списка

static List<string> getPushIDsForCategory(string user, string project) 
{ 
    .... 
} 

и им-то с помощью этой функции для создания строки JSON на лету

var JSON = "{\"app_id\": \"MY_ID_KEY\"," + 
      "\"contents\": {\"en\": \"My Message\"}," + 
      "\"ios_badgeType\": \"Increase\"," + 
      "\"ios_badgeCount\": \"1\"," + 
      "\"include_player_ids\": [\"" + getPushIDsForCategory(user, project) + "\"]" + //<-- that string array goes here (item 1, item 2, item 3, etc...) 
      "}"; 

, когда я запускаю этот код я получаю

{ 
    ... 
    "include_player_ids": ["System.Collections.Generic.List 1[System.String]"] 
    ... 
} 

, если я заменю его getPushIDsForCategory(user, project)).ToArray

я получить

{ 
    ... 
    "include_player_ids": ["System.String[]"] 
    ... 
} 

как я могу получить acutal строк и типов не возражали?

+0

Что такое код 'getPushIDsForCategory' – fubo

+0

Почему бы не использовать библиотеку Json для создания текста объекта Json? FYI, просто используйте 'string.Join' для создания одной строки из всех значений в списке. – juharr

+0

Вы должны добавить петлю foreach там, чтобы распечатать все предметы. –

ответ

3

Я считаю, что вы ищете string.Join(", ", getPushIDsForCategory(user, project));

Это будет принимать каждый объект в массиве, и присоединиться к ним вместе с ограничителем ", " (запятая пробел)

как другие из уже упоминалось, это может привести к головная боль позже вниз по линии.

взглянуть на http://www.newtonsoft.com/json

+0

Иногда ОП, очевидно, задает неправильный вопрос. Должны ли мы помогать им в решении плохого решения? – spender

+1

@spender ваше право, я отредактировал свое сообщение, но я действительно хотел ответить на их вопрос, как его спрашивали. я думаю, что делать то, что трудный путь лучше изучить, а затем сделать легкий путь позже. – Multinerd

+0

'string.Join' сделал то, что я хотел, но не совсем, каждый элемент добавлялся в одну строку, я хотел, чтобы каждый элемент был его собственной строкой. Я принял ваш совет и использовал JSON.net, я смог решить это, поэтому спасибо за помощь – highboi

0

Изменения:

static string[] getPushIDsForCategory(string user, string project) 

var idsArray = String.Join(", ", getPushIDsForCategory(user, project)); 
"\"include_player_ids\": [\"" + idsArray + "\"]" 

Тем не менее, вы не можете создать JSon подобное. То, что вы строите там, называется «волшебной струной». Это означает, что если есть проблема с yout Json, вы обнаружите это во время выполнения, а не во время компиляции. Скорее, у вас есть класс, на который вы сопоставляете все данные и используете их для создания Json.

Смежные вопросы