Пользовательский ответ Json от web api

Если метод equals() присутствует в классе java.lang.Object, и ожидается, что он проверяет эквивалентность состояния объектов! Это означает, что содержимое объектов. В то время как ожидается, что оператор == проверяет, что фактические экземпляры объекта одинаковы или нет.

Пример

Рассмотрим две различные ссылочные переменные, str1 и str2:

str1 = new String("abc");
str2 = new String("abc");

Если вы используете equals()

System.out.println((str1.equals(str2))?"TRUE":"FALSE");

, вы получите выход как TRUE, если вы используете ==.

System.out.println((str1==str2) ? "TRUE" : "FALSE");

Теперь вы получите вывод FALSE в качестве вывода, потому что оба str1 и str2 указывают на два разных объекта, хотя оба они имеют одинаковое строковое содержимое. Именно из-за new String() каждый новый объект создается каждый раз.

1
задан Harsha Rao 13 July 2018 в 11:01
поделиться

1 ответ

Ниже приведен код / ​​модель, которая вам нужна:

void Main()
{
    var c = new CustomData()
    {
        MRecordList = new List<UserQuery.Record>
        {
          new Record{FirstName="A",LastName="B"},
          new Record{FirstName="C",LastName="D"}
        },
        ResponseCode = "0",
        Status = ""     
    };

    JsonConvert.SerializeObject(c).Dump();
}


public class CustomData
{
    public List<Record> MRecordList { get; set; }
    public string ResponseCode { get; set; }
    public string Status { get; set; }
}

public class Record
{
    public string FirstName { get;set;}     
    public string LastName { get;set;}
}

Это даст следующий Json:

{
    "MRecordList": [{
        "FirstName": "A",
        "LastName": "B"
    }, {
        "FirstName": "C",
        "LastName": "D"
    }],
    "ResponseCode": "0",
    "Status": ""
}

В случае, если ваше требование следующее Json:

{
    "customData": {
        "MRecordList": [{
            "FirstName": "A",
            "LastName": "B"
        }, {
            "FirstName": "C",
            "LastName": "D"
        }],
        "ResponseCode": "0",
        "Status": ""
    }
}

затем внесите следующие изменения в код:

public class Test
{
    public CustomData customData {get;set;}
}

Test t = new Test{customData = c};

Now serialize t

Помните, что корневой тег в Json не ясен из приведенных выше примеров

0
ответ дан Mrinal Kamboj 17 August 2018 в 13:05
поделиться
  • 1
    Мой плохой, я не упоминал & quot; List & lt; Record & gt; & quot; объект в вопросе. Я могу добиться ответа, как вы показали. Мне нужен ответ вроде: MRecord: {FirstName: "1stName", LastName: & quot ;,}, MRecord: {FirstName: & quot; 2Name & quot ;, LastName: & quot ;,}} Возможно ли, чтобы данные json с именем свойства? – Harsha Rao 13 July 2018 в 11:42
  • 2
    Это недействительный Json, вы можете сделать его Dictionary<string,Record>, который будет отмечать элементы с идентификатором имени строки, но даже тогда каждый идентификатор должен быть другим, он не может быть «MRecord», он должен быть «quot; MRecord0 "," MRecord1 ", так далее и т. Д. – Mrinal Kamboj 13 July 2018 в 12:04
  • 3
    Что бы вы ни подумали, сначала проверьте, является ли json действительным или нет, затем идет форматирование в правильном формате, используйте валидатор Json Lint – Mrinal Kamboj 13 July 2018 в 12:07
  • 4
    Спасибо, мистер. Да, я понимаю, его недействительный формат json, поскольку свойство не может повториться. Я буду придерживаться моего существующего json. Спасибо за вашу помощь. – Harsha Rao 13 July 2018 в 12:23
Другие вопросы по тегам:

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