Как возвратить определенный формат даты как JSON в Grails?

Вы решаете разные модели.

res = linprog(obj_func, constraints, rhs, method="interior-point", options={"disp":True})

означает

res = linprog(obj_func, A_ub=constraints, b_ub=rhs, method="interior-point", options={"disp":True})

, действующие в ограничениях:

x0 <= 0.4498162176582741
...

вместо

x0 == 0.4498162176582741

Поэтому linprog использует неравенства только тогда, когда lpsolve использует только равенства (без проверки, выполняет ли f.dir = c("=","=","=","=") то, что, я думаю, делает; но результат показывает это более или менее).

Результат linprog:

x: array([4.34463075e-10, 4.34463075e-10, 6.03369494e-10])

является типичным выходом нулевого вектора метода внутренней точки (только приближенные интегральные решения)! В отличие от коммерческих решателей, таких как Gurobi , здесь нет шага кроссовера.

Будьте внимательны при чтении документов (которые содержат эту информацию).

19
задан Michael Gaskill 19 May 2016 в 03:45
поделиться

2 ответа

Существует простое решение: Начиная с Grails 1.1 Преобразователи были переписаны, чтобы быть более модульными. К сожалению, я не закончил документацию для этого. Это позволяет теперь регистрировать так называемый ObjectMarshallers (простой Pogo/Pojo's, которые реализуют org.codehaus.groovy.grails.web.converters.marshaller.ObjectMarshaller интерфейс).

Для достижения желаемого вывода Вы могли зарегистрировать такой ObjectMarshaller в BootStrap.groovy тот путь:

import grails.converters.JSON;

class BootStrap {

     def init = { servletContext ->
         JSON.registerObjectMarshaller(Date) {
            return it?.format("dd-MM-yyyy")
         }
     }
     def destroy = {
     }
}

Существует несколько других способов настроить вывод Преобразователей, и я приложу все усилия, действительно догоняют документацию как можно скорее.

37
ответ дан 30 November 2019 в 03:29
поделиться

Или вы можете работать на самом уровне даты. Это может быть не совсем то, что вы хотите, но это может вызвать идею для решения, которое будет работать последовательно во всем приложении.

def doWithDynamicMethods = {ctx ->

  def customDateToString = {->
        def dateFormat = "dd MMM yyyy"
        def timeFormat = "hh:mm:ss a"

        def timeCheck = new java.text.SimpleDateFormat("hh:mm:ss SSS a")
        def formattedTime = timeCheck.format(delegate)
        def formatString = dateFormat
        if (formattedTime != "12:00:00 000 AM") 
                              formatString = "$formatString $timeFormat"
        def formatter = new java.text.SimpleDateFormat("$formatString")
        formatter.format(delegate)
    }

    Date.metaClass.toString = customDateToString;
    java.sql.Timestamp.metaClass.toString = customDateToString;
}
1
ответ дан 30 November 2019 в 03:29
поделиться
Другие вопросы по тегам:

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