2013-07-25 10 views
8

Jak przekonwertować listę ciągKonwersja listy ciąg w formacie json

List<string> keys = new List<string>() { "1-12VEXP", "1-124DH9"}; 

do formatu json samym jak:

[["1-12VEXP"],["1-124DH9"]] 

w .NET.

Używam Newtonsoft.Json.

Każda pomoc zostanie bardzo doceniona.

+1

Czego już próbowałeś? Jakiego serializatora JSON używasz? (Jeśli nie używasz jeszcze nic, powinieneś naprawdę wybrać ...) –

+0

To nie jest JSON, a wszystko czego potrzebujesz to JSON.NET. –

+0

@JonSkeet Newtonsoft.Json –

Odpowiedz

16

Prosta serializacja nie będzie działać, ponieważ elementy nie są równoważne. Jeśli naprawdę chcesz to pytasz o, to trzeba tablicę, która zawiera tablice, a następnie serializacji tej tablicy:

Można to zrobić przez pierwszy konwersji swoją kolekcję, a następnie prosty JSON serializacji:

string[][] newKeys = keys.Select(x => new string[]{x}).ToArray(); 

string json = JsonConvert.SerializeObject(newKeys); 
+0

Używam go w WebMethod. Ale pokazuje "nazwa" obiektu json "nie istnieje w bieżącym kontekście". ?? Jaki jest problem? –

+0

@ShyamDixit Wygląda na to, że masz osobny, niezwiązany problem i powinieneś opublikować to jako nowe pytanie. –

0

Z Newtonsoft.Json:

JsonConvert.SerializeObject(keys); 

daje JSON.

+3

Niestety, da ci to coś w rodzaju [" 1-12VEXP ", " 1-124DH9 "] jeśli dla typu IList , który prawdopodobnie nie jest użyteczny; działałoby to, gdyby używał na przykład typu IList niestandardowego typu w/właściwości. – Joe