2013-10-24 21 views
1

Это мой серверный код C#.Возвращенная строка JSON из JavaScriptSerializer

JavaScriptSerializer jsSer = new JavaScriptSerializer(); 

string strJson = jsSer.Serialize(tableData); \\tableData is List type 
string strRawJson = Regex.Replace(strJson, "\\s{2,}", ""); \\ Remove Whitespaces 

Это значение strRawJson, которое я получаю сейчас.

"[{\"RowNumber\":1, ... , "ActivityDate\":\"\\/Date(1378310400000)\\/\",\"ErrMessage\":null}]" 

Вот мой первый вопрос .

Я хотел бы увидеть значение «ActivityDate» как этот формат: '2013-10-24 12: 00: 00: 000'. Как я могу сделать?
Обратите внимание, что я хочу сделать это в C# (НЕ JAVASCRIPT), и я не хочу использовать Json.NET

Вот мой второй вопрос

Как вы можете видеть моя третья строка кода, я использовал Regex для удаления некоторых пробелов. Есть ли еще одна возможная ошибка при создании JSON через JavaScriptSerializer?

спасибо, что заблаговременно! :)

[Редактировать]
Я понимаю, что JavaScriptSerializer очень ограничено, но могу ли я получить некоторую помощь для моего «второго» вопрос, пожалуйста? или Рекомендовать другой хороший сериализатор?

+0

Почему бы вам просто не включить ActivityDate в строку в требуемом формате? – Liam

+3

'JavaScriptSerializer' очень ограничен. Если он делает именно то, что вы хотите, это здорово. Если вы хотите, чтобы он делал что-то другое, вы ввернуты. Несмотря на ваши возражения, вы должны использовать другой сериализатор, такой как json.net. Наконец, тот факт, что вы используете регулярное выражение в конце, чтобы избавиться от пробелов, должно быть ключом к тому, что вы не используете идеальный сериализатор. –

+0

@Kirk Woll Это мой webservice (.asmx), и мне нужно сериализовать myList в строку JSON. Если тогда, какой сериализатор вы рекомендуете? хм .. Я не знал, что JavaScriptSerializer очень ограничен. – Adrian

ответ

-1

Вы используете MVC.net? Если да, то вы можете использовать этот метод контроллера:

protected internal JsonResult Json(object data, JsonRequestBehavior behavior) 
{ 
    return this.Json(data, (string) null, (Encoding) null, behavior); 
} 

если вы звоните ваши действия, вы получите равнину JSon отформатированную строку.

Вы можете использовать string.Format() для форматирования даты или просто сделать это в js.

+0

почему я проголосовал? – sergej

+1

Какой именно сериализатор вы используете MVC для сериализации json? (подсказка, это «JavaScriptSerializer»). Учитывая, как ваш ответ затрагивает вопрос OP вообще? –

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