Как я могу получить объект JsonResult как строку, таким образом, я могу изменить его?

Скорее всего, вы не хотите вызывать input как в условном выражении while, так и в цикле while. Что-то вроде этого, вероятно, то, что вы собираетесь:

a = []
num = int(input())
while num != -1:
    a.append(num)
    num = int(input())

Кроме того, ваше усреднение немного сложнее, чем необходимо. Попробуйте это:

b = sum(a) / len(a)

Конечно, вы столкнетесь с проблемами, если не введете какие-либо числа для усреднения, то есть деления на 0.

8
задан Eric Schoonover 24 November 2008 в 10:41
поделиться

3 ответа

Я закончил modifiying пример Codeproject немного:

Imports System.Web.Script.Serialization
Imports System.Reflection

Public Class FlexiGrid

    Public Class FlexigridRow
        Public id As String
        Public cell As New List(Of String)()
    End Class

    Public Class FlexigridObject
        Public page As Integer
        Public total As Integer
        Public rows As New List(Of FlexigridRow)()
    End Class

    Public Shared Function GetFlexiGridJSON(ByVal page As Integer, ByVal total As Integer, ByVal o As Object) As String

        Dim js As New JavaScriptSerializer
        Dim flexiGrid As New FlexigridObject
        Dim i As Integer = 0
        flexiGrid.page = page
        flexiGrid.total = total

        For Each c In o
            Dim r As New FlexigridRow()
            r.id = i
            r.cell = GetPropertyList(c)
            flexiGrid.rows.Add(r)
            i += i
        Next

        Return js.Serialize(flexiGrid)
    End Function

    Private Shared Function GetPropertyList(ByVal obj As Object) As List(Of String)

        Dim propertyList As New List(Of String)()

        Dim type As Type = obj.[GetType]()
        Dim properties As PropertyInfo() = type.GetProperties(BindingFlags.Instance Or BindingFlags.[Public])
        For Each [property] As PropertyInfo In properties
            Dim o As Object = [property].GetValue(obj, Nothing)
            propertyList.Add(If(o Is Nothing, "", o.ToString()))
        Next

        Return propertyList

    End Function

End Class

Теперь в моем контроллере я просто звоню:

Return Content(GetFlexiGridJSON(pageIndex, TotalCount, objCustomerList))

Пока объект, который я передаю, является списком объектов, он работает отлично.

2
ответ дан 5 December 2019 в 06:10
поделиться

Json() метод в ASP.NET MVC просто использует JavaScriptSerializer класс через JsonResult класс. Вы могли использовать это сами, если бы Вы хотели сериализировать объект objCustomerList, использующий JSON для строки.

Моя рекомендация состояла бы в том, чтобы проявить немного отличающийся подход.

  • Создайте Модель, которая представила.NET, эквивалентную из объекта JavaScript, который что Вы пытались создать. Возможно, FlexiGridModel возражает со Страницей, Общим количеством, строками и свойствами CustomerList.
  • Затем, когда Вы передаете тот FlexiGridModel Json() это просто работало бы, никакая потребность создать строковое использование JSON StringBuilder.

Если Вы просто хотите, чтобы Ваш код работал, существует переопределение на JavaScriptSerializer.Serialize() это берет объект сериализировать и StringBuilder добавлять результаты к. Который должен быть точно, что Вы ищете.

Некоторые необходимые ссылки:

15
ответ дан 5 December 2019 в 06:10
поделиться

Вы также можете сделать это:

JsonResult json = ... ;
JavaScriptSerializer serializer = new JavaScriptSerializer();
string yourJsonResult = serializer.Serialize(json.Data);

Вот так просто: D

редактировать: code high lighting

10
ответ дан 5 December 2019 в 06:10
поделиться
Другие вопросы по тегам:

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