.net Прочитать неверный json из файла [duplicate]

Когда мы работали в MSSQL 2000, мы сделали то, что мы назвали «triple-flip»:

EDITED

DECLARE @InnerPageSize int
DECLARE @OuterPageSize int
DECLARE @Count int

SELECT @Count = COUNT(<column>) FROM <TABLE>
SET @InnerPageSize = @PageNum * @PageSize
SET @OuterPageSize = @Count - ((@PageNum - 1) * @PageSize)

IF (@OuterPageSize < 0)
    SET @OuterPageSize = 0
ELSE IF (@OuterPageSize > @PageSize)
    SET @OuterPageSize = @PageSize

DECLARE @sql NVARCHAR(8000)

SET @sql = 'SELECT * FROM
(
    SELECT TOP ' + CAST(@OuterPageSize AS nvarchar(5)) + ' * FROM
    (
        SELECT TOP ' + CAST(@InnerPageSize AS nvarchar(5)) + ' * FROM <TABLE> ORDER BY <column> ASC
    ) AS t1 ORDER BY <column> DESC
) AS t2 ORDER BY <column> ASC'

PRINT @sql
EXECUTE sp_executesql @sql

Это было не изящно, и это был не быстрым, но он работал.

7
задан user960567 19 April 2015 в 11:12
поделиться

1 ответ

Вы можете сделать это, вручную разобрав ваш JSON с помощью JsonTextReader и установив флаг SupportMultipleContent в true.

Если мы посмотрим на ваш первый пример и создаем POCO, называемый Foo:

public class Foo
{
    [JsonProperty("some")]
    public string Some { get; set; }
}

Вот как мы его разбираем:

var json = "{\"some\":\"thing1\"}\r\n{\"some\":\"thing2\"}\r\n{\"some\":\"thing3\"}";
var jsonReader = new JsonTextReader(new StringReader(json))
{
    SupportMultipleContent = true // This is important!
};

var jsonSerializer = new JsonSerializer();
while (jsonReader.Read())
{
    Foo foo = jsonSerializer.Deserialize<Foo>(jsonReader);
}
13
ответ дан Yuval Itzchakov 20 August 2018 в 16:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: