Вы попросили его сериализовать значение 3, и это произошло.Это совершенно правильно.
Если говорить прямо: что именно вы ожидаете выйти?JSON дает пары имя-значение.У значения «3» нет имени, потому что весь объект равен 3.
JSON - это JavaScript object нотация.Передайте ему объект, и вы, вероятно, получите то, что ожидаете.
Вы можете использовать анонимный тип, как предлагает М. Бэбкок: new { i = 3 }
.