Сортировка ответа JSON по фамилии - PullRequest
0 голосов
/ 06 мая 2011
{"PatientSearchResult":{"Patient":[{"AccountBalanceCalcMethod":2,"AlternatePatientID":0,"AssignmentOfBenifits":0,"CellPhoneNumber1":null,"CellPhoneNumber2":null,"Citizenship":0,"Credential":0,"DateOfBirth":null,"Deceased":0,"DeceasedDate":"\/Date(-62135578800000-0500)\/","DoesPatientHaveResidentProof":false,"DriversLicenseNumber":null,"DriversLicenseState":0,"EmailAddress1":null,"EmailAddress2":null,"Enabled":false,"Ethnicity":0,"Firstname":"2914 FirstName","FullName":"2914 FirstName 2914 LastName","Gender":2,"GuarantorID":0,"IsFinancialRisk":false,"IsPatient":false,"LastName":"2914 LastName","LocalName":null,"MaidenName":null,"MaritalStatus":0,"MiddleName1":null,"MiddleName2":null,"MothersMaidenName":null,"Nickname":null,"NoteText":null,"Notes":null,"Occupation":null,"OriginalPatientID":0,"PagerNumber":null,"PersonID":0,"PharmacyName":null,"PharmacyNoteID":0,"PhoneNumber1":null,"PhoneNumber2":null,"Prefix":0,"PrimaryLanguage":0,"PrimaryPhoneNumber":null,"PrimaryPhysID":0,"PrimaryWorkPhone":null,"Race":0,"ReleaseOfInformation":false,"Religion":0,"ResidentialAddress":null,"SSN":null,"SealedFlagID":0,"SecondaryLanguage":0,"StudentStatusID":0,"Suffix":0,"PatientID":2914},{"AccountBalanceCalcMethod":2,"AlternatePatientID":0,"AssignmentOfBenifits":0,"CellPhoneNumber1":null,"CellPhoneNumber2":null,"Citizenship":0,"Credential":0,"DateOfBirth":"\/Date(378709200000-0500)\/","Deceased":0,"DeceasedDate":"\/Date(-62135578800000-0500)\/","DoesPatientHaveResidentProof":false,"DriversLicenseNumber":null,"DriversLicenseState":0,"EmailAddress1":null,"EmailAddress2":null,"Enabled":false,"Ethnicity":0,"Firstname":"4261 FirstName","FullName":"4261 FirstName 4261 LastName","Gender":2,"GuarantorID":0,"IsFinancialRisk":false,"IsPatient":false,"LastName":"4261 LastName","LocalName":null,"MaidenName":null,"MaritalStatus":0,"MiddleName1":null,"MiddleName2":null,"MothersMaidenName":null,"Nickname":null,"NoteText":null,"Notes":null,"Occupation":null,"OriginalPatientID":0,"PagerNumber":null,"PersonID":0,"PharmacyName":null,"PharmacyNoteID":0,"PhoneNumber1":null,"PhoneNumber2":null,"Prefix":0,"PrimaryLanguage":0,"PrimaryPhoneNumber":null,"PrimaryPhysID":0,"PrimaryWorkPhone":null,"Race":0,"ReleaseOfInformation":false,"Religion":0,"ResidentialAddress":null,"SSN":null,"SealedFlagID":0,"SecondaryLanguage":0,"StudentStatusID":0,"Suffix":0,"PatientID":4261},{"AccountBalanceCalcMethod":2,"AlternatePatientID":0,"AssignmentOfBenifits":0,"CellPhoneNumber1":null,"CellPhoneNumber2":null,"Citizenship":0,"Credential":0,"DateOfBirth":"\/Date(1136264400000-0500)\/","Deceased":0,"DeceasedDate":"\/Date(-62135578800000-0500)\/","DoesPatientHaveResidentProof":false,"DriversLicenseNumber":null,"DriversLicenseState":0,"EmailAddress1":null,"EmailAddress2":null,"Enabled":false,"Ethnicity":0,"Firstname":"Bo","FullName":"Bo Ray","Gender":2,"GuarantorID":0,"IsFinancialRisk":false,"IsPatient":false,"LastName":"Ray","LocalName":null,"MaidenName":null,"MaritalStatus":0,"MiddleName1":null,"MiddleName2":null,"MothersMaidenName":null,"Nickname":null,"NoteText":null,"Notes":null,"Occupation":null,"OriginalPatientID":0,"PagerNumber":null,"PersonID":0,"PharmacyName":null,"PharmacyNoteID":0,"PhoneNumber1":null,"PhoneNumber2":null,"Prefix":0,"PrimaryLanguage":0,"PrimaryPhoneNumber":null,"PrimaryPhysID":0,"PrimaryWorkPhone":null,"Race":0,"ReleaseOfInformation":false,"Religion":0,"ResidentialAddress":null,"SSN":null,"SealedFlagID":0,"SecondaryLanguage":0,"StudentStatusID":0,"Suffix":0,"PatientID":19369},{"AccountBalanceCalcMethod":2,"AlternatePatientID":0,"AssignmentOfBenifits":0,"CellPhoneNumber1":null,"CellPhoneNumber2":null,"Citizenship":0,"Credential":0,"DateOfBirth":"\/Date(-2192126400000-0400)\/","Deceased":0,"DeceasedDate":"\/Date(-62135578800000-0500)\/","DoesPatientHaveResidentProof":false,"DriversLicenseNumber":null,"DriversLicenseState":0,"EmailAddress1":null,"EmailAddress2":null,"Enabled":false,"Ethnicity":0,"Firstname":"Mark","FullName":"Mark Noyce","Gender":2,"GuarantorID":0,"IsFinancialRisk":false,"IsPatient":false,"LastName":"Noyce","LocalName":null,"MaidenName":null,"MaritalStatus":0,"MiddleName1":null,"MiddleName2":null,"MothersMaidenName":null,"Nickname":null,"NoteText":null,"Notes":null,"Occupation":null,"OriginalPatientID":0,"PagerNumber":null,"PersonID":0,"PharmacyName":null,"PharmacyNoteID":0,"PhoneNumber1":null,"PhoneNumber2":null,"Prefix":0,"PrimaryLanguage":0,"PrimaryPhoneNumber":null,"PrimaryPhysID":0,"PrimaryWorkPhone":null,"Race":0,"ReleaseOfInformation":false,"Religion":0,"ResidentialAddress":null,"SSN":null,"SealedFlagID":0,"SecondaryLanguage":0,"StudentStatusID":0,"Suffix":0,"PatientID":19387},{"AccountBalanceCalcMethod":2,"AlternatePatientID":0,"AssignmentOfBenifits":0,"CellPhoneNumber1":null,"CellPhoneNumber2":null,"Citizenship":0,"Credential":0,"DateOfBirth":"\/Date(-5347800000000-0400)\/","Deceased":0,"DeceasedDate":"\/Date(-62135578800000-0500)\/","DoesPatientHaveResidentProof":false,"DriversLicenseNumber":null,"DriversLicenseState":0,"EmailAddress1":null,"EmailAddress2":null,"Enabled":false,"Ethnicity":0,"Firstname":"Kevin","FullName":"Kevin Noyce","Gender":2,"GuarantorID":0,"IsFinancialRisk":false,"IsPatient":false,"LastName":"Noyce","LocalName":null,"MaidenName":null,"MaritalStatus":0,"MiddleName1":null,"MiddleName2":null,"MothersMaidenName":null,"Nickname":null,"NoteText":null,"Notes":null,"Occupation":null,"OriginalPatientID":0,"PagerNumber":null,"PersonID":0,"PharmacyName":null,"PharmacyNoteID":0,"PhoneNumber1":null,"PhoneNumber2":null,"Prefix":0,"PrimaryLanguage":0,"PrimaryPhoneNumber":null,"PrimaryPhysID":0,"PrimaryWorkPhone":null,"Race":0,"ReleaseOfInformation":false,"Religion":0,"ResidentialAddress":null,"SSN":null,"SealedFlagID":0,"SecondaryLanguage":0,"StudentStatusID":0,"Suffix":0,"PatientID":19388},{"AccountBalanceCalcMethod":2,"AlternatePatientID":0,"AssignmentOfBenifits":0,"CellPhoneNumber1":null,"CellPhoneNumber2":null,"Citizenship":0,"Credential":0,"DateOfBirth":"\/Date(-381697200000-0500)\/","Deceased":0,"DeceasedDate":"\/Date(-62135578800000-0500)\/","DoesPatientHaveResidentProof":false,"DriversLicenseNumber":null,"DriversLicenseState":0,"EmailAddress1":null,"EmailAddress2":null,"Enabled":false,"Ethnicity":0,"Firstname":"Scott","FullName":"Scott Noyce","Gender":2,"GuarantorID":0,"IsFinancialRisk":false,"IsPatient":false,"LastName":"Noyce","LocalName":null,"MaidenName":null,"MaritalStatus":0,"MiddleName1":null,"MiddleName2":null,"MothersMaidenName":null,"Nickname":null,"NoteText":null,"Notes":null,"Occupation":null,"OriginalPatientID":0,"PagerNumber":null,"PersonID":0,"PharmacyName":null,"PharmacyNoteID":0,"PhoneNumber1":null,"PhoneNumber2":null,"Prefix":0,"PrimaryLanguage":0,"PrimaryPhoneNumber":null,"PrimaryPhysID":0,"PrimaryWorkPhone":null,"Race":0,"ReleaseOfInformation":false,"Religion":0,"ResidentialAddress":null,"SSN":null,"SealedFlagID":0,"SecondaryLanguage":0,"StudentStatusID":0,"Suffix":0,"PatientID":19389},{"AccountBalanceCalcMethod":2,"AlternatePatientID":0,"AssignmentOfBenifits":0,"CellPhoneNumber1":null,"CellPhoneNumber2":null,"Citizenship":0,"Credential":0,"DateOfBirth":"\/Date(-445806000000-0500)\/","Deceased":0,"DeceasedDate":"\/Date(-62135578800000-0500)\/","DoesPatientHaveResidentProof":false,"DriversLicenseNumber":null,"DriversLicenseState":0,"EmailAddress1":null,"EmailAddress2":null,"Enabled":false,"Ethnicity":0,"Firstname":"John","FullName":"John Doe","Gender":2,"GuarantorID":0,"IsFinancialRisk":false,"IsPatient":false,"LastName":"Doe","LocalName":null,"MaidenName":null,"MaritalStatus":0,"MiddleName1":null,"MiddleName2":null,"MothersMaidenName":null,"Nickname":null,"NoteText":null,"Notes":null,"Occupation":null,"OriginalPatientID":0,"PagerNumber":null,"PersonID":0,"PharmacyName":null,"PharmacyNoteID":0,"PhoneNumber1":null,"PhoneNumber2":null,"Prefix":0,"PrimaryLanguage":0,"PrimaryPhoneNumber":null,"PrimaryPhysID":0,"PrimaryWorkPhone":null,"Race":0,"ReleaseOfInformation":false,"Religion":0,"ResidentialAddress":null,"SSN":null,"SealedFlagID":0,"SecondaryLanguage":0,"StudentStatusID":0,"Suffix":0,"PatientID":19395},{"AccountBalanceCalcMethod":2,"AlternatePatientID":0,"AssignmentOfBenifits":0,"CellPhoneNumber1":null,"CellPhoneNumber2":null,"Citizenship":0,"Credential":0,"DateOfBirth":"\/Date(-880830000000-0500)\/","Deceased":0,"DeceasedDate":"\/Date(-62135578800000-0500)\/","DoesPatientHaveResidentProof":false,"DriversLicenseNumber":null,"DriversLicenseState":0,"EmailAddress1":null,"EmailAddress2":null,"Enabled":false,"Ethnicity":0,"Firstname":"Dagwood","FullName":"Dagwood Bumstead","Gender":2,"GuarantorID":0,"IsFinancialRisk":false,"IsPatient":false,"LastName":"Bumstead","LocalName":null,"MaidenName":null,"MaritalStatus":0,"MiddleName1":null,"MiddleName2":null,"MothersMaidenName":null,"Nickname":null,"NoteText":null,"Notes":null,"Occupation":null,"OriginalPatientID":0,"PagerNumber":null,"PersonID":0,"PharmacyName":null,"PharmacyNoteID":0,"PhoneNumber1":null,"PhoneNumber2":null,"Prefix":0,"PrimaryLanguage":0,"PrimaryPhoneNumber":null,"PrimaryPhysID":0,"PrimaryWorkPhone":null,"Race":0,"ReleaseOfInformation":false,"Religion":0,"ResidentialAddress":null,"SSN":null,"SealedFlagID":0,"SecondaryLanguage":0,"StudentStatusID":0,"Suffix":0,"PatientID":19414},{"AccountBalanceCalcMethod":2,"AlternatePatientID":0,"AssignmentOfBenifits":0,"CellPhoneNumber1":null,"CellPhoneNumber2":null,"Citizenship":0,"Credential":0,"DateOfBirth":null,"Deceased":0,"DeceasedDate":"\/Date(-62135578800000-0500)\/","DoesPatientHaveResidentProof":false,"DriversLicenseNumber":null,"DriversLicenseState":0,"EmailAddress1":null,"EmailAddress2":null,"Enabled":false,"Ethnicity":0,"Firstname":"Clyde","FullName":"Clyde Barrow","Gender":2,"GuarantorID":0,"IsFinancialRisk":false,"IsPatient":false,"LastName":"Barrow","LocalName":null,"MaidenName":null,"MaritalStatus":0,"MiddleName1":null,"MiddleName2":null,"MothersMaidenName":null,"Nickname":null,"NoteText":null,"Notes":null,"Occupation":null,"OriginalPatientID":0,"PagerNumber":null,"PersonID":0,"PharmacyName":null,"PharmacyNoteID":0,"PhoneNumber1":null,"PhoneNumber2":null,"Prefix":0,"PrimaryLanguage":0,"PrimaryPhoneNumber":null,"PrimaryPhysID":0,"PrimaryWorkPhone":null,"Race":0,"ReleaseOfInformation":false,"Religion":0,"ResidentialAddress":null,"SSN":null,"SealedFlagID":0,"SecondaryLanguage":0,"StudentStatusID":0,"Suffix":0,"PatientID":19415},{"AccountBalanceCalcMethod":2,"AlternatePatientID":0,"AssignmentOfBenifits":0,"CellPhoneNumber1":null,"CellPhoneNumber2":null,"Citizenship":0,"Credential":0,"DateOfBirth":"\/Date(-249678000000-0500)\/","Deceased":0,"DeceasedDate":"\/Date(-62135578800000-0500)\/","DoesPatientHaveResidentProof":false,"DriversLicenseNumber":null,"DriversLicenseState":0,"EmailAddress1":null,"EmailAddress2":null,"Enabled":false,"Ethnicity":0,"Firstname":"Fred","FullName":"Fred Flintstone","Gender":2,"GuarantorID":0,"IsFinancialRisk":false,"IsPatient":false,"LastName":"Flintstone","LocalName":null,"MaidenName":null,"MaritalStatus":0,"MiddleName1":null,"MiddleName2":null,"MothersMaidenName":null,"Nickname":null,"NoteText":null,"Notes":null,"Occupation":null,"OriginalPatientID":0,"PagerNumber":null,"PersonID":0,"PharmacyName":null,"PharmacyNoteID":0,"PhoneNumber1":null,"PhoneNumber2":null,"Prefix":0,"PrimaryLanguage":0,"PrimaryPhoneNumber":null,"PrimaryPhysID":0,"PrimaryWorkPhone":null,"Race":0,"ReleaseOfInformation":false,"Religion":0,"ResidentialAddress":null,"SSN":null,"SealedFlagID":0,"SecondaryLanguage":0,"StudentStatusID":0,"Suffix":0,"PatientID":19420}]}}

Это мой ответ JSON, как бы я его отсортировал.Что я пытался

var data = eval(PatientSearchResponse);
var results = data['results'];

PatientSearchResponse.SortByName(results);

function SortByName(x,y) {      
  return ((x.LastName == y.LastName) ? 0 : ((x.LastName > y.LastName) ? 1 : -1 ));    
}

Не сработало.

Ответы [ 2 ]

2 голосов
/ 06 мая 2011

Несколько проблем здесь;results не существует в ответе JSON, который вы дали, а SortByName является функцией, доступной для текущей области, но не является членом PatientSearchResponse.

Предположительно, вы хотите что-то вроде этого:

var data = eval(PatientSearchResponse); // use JSON.parse if available
var results = data['PatientSearchResult'];

// Call the `sort` method, passing SortByName as the first argument
results.Patient.sort(SortByName);

function SortByName(x,y) {      
  return ((x.LastName == y.LastName) ? 0 : ((x.LastName > y.LastName) ? 1 : -1 ));    
}
0 голосов
/ 06 мая 2011

Я не знаю, какой сценарий на стороне сервера вы используете, если его PHP, то

Попробуйте unserialize , это приведет к десериализации объекта json в массив (только если ваш формат данных json правильный).

Затем вы можете отсортировать массив, используя функции сортировки массива.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...