Используя встроенные библиотеки для asp.net (System.Runtime.Serialization
и System.ServiceModel.Web
), вы можете довольно легко получить то, что вам нужно:
string[][] parsed = null;
var jsonStr = @"[[""Boston"",""142"",""JJK""],[""Miami"",""111"",""QLA""],[""Sacramento"",""042"",""PPT""]]";
using (var ms = new System.IO.MemoryStream(System.Text.Encoding.Default.GetBytes(jsonStr)))
{
var serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(string[][]));
parsed = serializer.ReadObject(ms) as string[][];
}
Немного более сложный пример (который был моим первоначальным ответом)
Сначала создайте фиктивный класс, чтобы использовать его для сериализации. Ему нужен только один член для хранения результата, который должен иметь тип string [] [].
[DataContract]
public class Result
{
[DataMember(Name="d")]
public string[][] d { get; set; }
}
Тогда это так же просто, как свернуть ваш результат примерно так: { "d": /<em>your results</em>/ }
. Ниже приведен пример:
Result parsed = null;
var jsonStr = @"[[""Boston"",""142"",""JJK""],[""Miami"",""111"",""QLA""],[""Sacramento"",""042"",""PPT""]]";
using (var ms = new MemoryStream(Encoding.Default.GetBytes(string.Format(@"{{ ""d"": {0} }}", jsonStr))))
{
var serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(Result));
parsed = serializer.ReadObject(ms) as Result;
}