2017-09-26 58 views
0

我目前正在嘗試按項目對我的json對象進行排序,我有一個報告對象,它持有一個應用程序和一個項目,並且我想獲取按項目分組的對象。這是我的json結構報告object.this結構將重複所有的JSON響應:我將收到許多報告對象 有沒有一個庫來做到這一點?按json對象分組

{ 
    "internalId": 60, 
    "state": "DIAGNOSIS_APPROVAL", 
    "project": { 
    "internalId": 25, 
    "acronym": "IMUPT", 
    "label": "IMUP216", 
    "comment": "", 
    "sap": "58", 
    "startingDate": 1488841200000, 
    "endingDate": 1553209200000, 
    "currency": { 
     "internalId": 143, 
     "currencyCode": "TND", 
     "currencyName": "Tunisian Dinar" 
    }, 
    "budget": 250000000, 
    "defaultFrReportModelSet": { 
     "reference": "Sdr9r_fr.pdf", 
     "comment": "", 
     "active": false, 
     "expertPath": "", 
     "validatorPath": "", 
     "tuPath": "", 
     "bmnPath": "", 
     "locale": { 
     "internalId": 2, 
     "language": { 
      "internalId": 48, 
      "languageCode": "fr", 
      "languageName": "French" 
     } 
     }, 
     "sections": [] 
    }, 
    "defaultEnReportModelSet": { 
     "reference": "Sdr9r.pdf", 
     "comment": "", 
     "active": false, 
     "expertPath": "C:\\pmn\\files\\200bba69-1be5-4640-b9e7-47f0d919145f\\srd9rTest.pdf", 
     "validatorPath": "", 
     "tuPath": "", 
     "bmnPath": "", 
     "locale": { 
     "internalId": 1, 
     "language": { 
      "internalId": 41, 
      "languageCode": "en", 
      "languageName": "English" 
     } 
     }, 
     "sections": [] 
    }, 
    "committees": [], 
    "subsidies": "No", 
    "softSub": "", 
    "hardSub": "", 
    "validatorPath": null, 
    "reference": "IMUPT17" 
    }, 
    "application": { 
    "internalId": 52, 
    "state": "APPROVED", 
    "companyName": "PicoSoft", 
    "codeName": "43bru532x8av9nxez5mi", 
    "subregion": "Ariana", 
    "legalForm": "SARL", 
    "registrationNumber": "45215455", 
    "taxIdentification": "455255656", 
    "belongToGroup": false, 
    "group": "", 
    "corpPurpose": "", 
    "hq": { 
     "address": "", 
     "email": "", 
     "website": "", 
     "phone": "", 
     "fax": "" 
    }, 
    "pu": { 
     "address": "", 
     "email": "", 
     "website": "", 
     "phone": "", 
     "fax": "" 
    }, 
    "cpFullName": "", 
    "cpFunction": "", 
    "dc": "", 
    "creationDate": 983746800000, 
    "startingActivityDate": 983746800000, 
    "sc": { 
     "amount": 0, 
     "national": 0, 
     "international": 0 
    }, 
    "mainActivity": { 
     "internalId": 53, 
     "code": "60", 
     "title": "Programming and broadcasting activities", 
     "parent": { 
      "internalId": 10, 
      "code": "J", 
      "title": "Information and communication" 
      } 
     }, 
     "ipm": "", 
     "esit": null, 
     "mainMarket": "", 
     "employmentNumber": 25, 
     "currency": { 
      "internalId": 143, 
      "currencyCode": "TND", 
      "currencyName": "Tunisian Dinar" 
     }, 
     "country": { 
      "internalId": 224, 
      "a3Code": "TUN", 
      "a2Code": "TN", 
      "countryName": "Tunisia", 
      "nativeCountryName": "Tunisia" 
     }, 
     "reference": "IMUPT17_52" 
     }, 
     "decision": null, 
     "reference": "IMUPT17_60", 
     "instanceName": "Report" 
    }, 
{ 
"internalId": 62, 
"state": "DIAGNOSIS_APPROVAL", 
"project": { 
"internalId": 25, 
"acronym": "IMUPT", 
"label": "IMUP216", 
"comment": "", 
"sap": "58", 
"startingDate": 1488841200000, 
"endingDate": 1553209200000, 
"currency": { 
"internalId": 143, 
"currencyCode": "TND", 
"currencyName": "Tunisian Dinar" 
}, 
"budget": 250000000, 
"defaultFrReportModelSet": { 
"reference": "Sdr9r_fr.pdf", 
"comment": "", 
"active": false, 
"expertPath": "C:\\pmn\\files\\a21f8c87-eae9-4c04-b00d-41b3087df602\\srd9rTestFR21_08_2017.pdf", 
"validatorPath": "C:\\pmn\\files\\a21f8c87-eae9-4c04-b00d-41b3087df602\\srd9rTestFR21_08_2017.pdf", 
"tuPath": "C:\\pmn\\files\\a21f8c87-eae9-4c04-b00d-41b3087df602\\srd9rTestFR21_08_2017.pdf", 
"bmnPath": "C:\\pmn\\files\\a21f8c87-eae9-4c04-b00d-41b3087df602\\srd9rTestFR21_08_2017.pdf", 
"locale": { 
"internalId": 2, 
"language": { 
"internalId": 48, 
"languageCode": "fr", 
"languageName": "French" 
} 
}, 
"sections": [] 
}, 
"defaultEnReportModelSet": { 
"reference": "Sdr9r.pdf", 
"comment": "", 
"active": false, 
"expertPath": "C:\\pmn\\files\\200bba69-1be5-4640-b9e7-47f0d919145f\\srd9rTest.pdf", 
"validatorPath": "C:\\pmn\\files\\200bba69-1be5-4640-b9e7-47f0d919145f\\srd9rTest.pdf", 
"tuPath": "C:\\pmn\\files\\200bba69-1be5-4640-b9e7-47f0d919145f\\srd9rTest.pdf", 
"bmnPath": "C:\\pmn\\files\\200bba69-1be5-4640-b9e7-47f0d919145f\\srd9rTest.pdf", 
"locale": { 
"internalId": 1, 
"language": { 
"internalId": 41, 
"languageCode": "en", 
"languageName": "English" 
} 
}, 
"sections": [] 
}, 
"committees": [], 
"subsidies": "No", 
"softSub": "", 
"hardSub": "", 
"validatorPath": null, 
"reference": "IMUPT17" 
}, 
"application": { 
"internalId": 54, 
"state": "APPROVED", 
"companyName": "Telnet", 
"codeName": "djw1q2nbtanec4gtzw7b9", 
"subregion": "Ariana", 
"legalForm": "SARL", 
"registrationNumber": "45214455", 
"taxIdentification": "55455", 
"belongToGroup": true, 
"group": "Telnet", 
"corpPurpose": "", 
"hq": { 
"address": "", 
"email": "", 
"website": "", 
"phone": "", 
"fax": "" 
}, 
"pu": { 
"address": "", 
"email": "", 
"website": "", 
"phone": "", 
"fax": "" 
}, 
"cpFullName": "", 
"cpFunction": "", 
"dc": "", 
"creationDate": null, 
"startingActivityDate": null, 
"sc": { 
"amount": 0, 
"national": 0, 
"international": 0 
}, 
"mainActivity": { 
"internalId": 43, 
"code": "47", 
"title": "Retail trade except of motor vehicles and motorcycles", 
"parent": { 
"internalId": 7, 
"code": "G", 
"title": "Wholesale and retail trade; repair of motor vehicles and motorcycles" 
} 
}, 
"ipm": "", 
"esit": null, 
"mainMarket": "", 
"employmentNumber": 520, 
"currency": { 
"internalId": 143, 
"currencyCode": "TND", 
"currencyName": "Tunisian Dinar" 
}, 
"country": { 
"internalId": 224, 
"a3Code": "TUN", 
"a2Code": "TN", 
"countryName": "Tunisia", 
"nativeCountryName": "Tunisia" 
}, 
"reference": "IMUPT17_54" 
}, 
"decision": null, 
"reference": "IMUPT17_62", 
"instanceName": "Report" 
}, 
{ 
"internalId": 61, 
"state": "DIAGNOSIS_APPROVAL", 
"project": { 
"internalId": 25, 
"acronym": "IMUPT", 
"label": "IMUP216", 
"comment": "", 
"sap": "58", 
"startingDate": 1488841200000, 
"endingDate": 1553209200000, 
"currency": { 
"internalId": 143, 
"currencyCode": "TND", 
"currencyName": "Tunisian Dinar" 
}, 
"budget": 250000000, 
"defaultFrReportModelSet": { 
"reference": "Sdr9r_fr.pdf", 
"comment": "", 
"active": false, 
"expertPath": "C:\\pmn\\files\\a21f8c87-eae9-4c04-b00d-41b3087df602\\srd9rTestFR21_08_2017.pdf", 
"validatorPath": "C:\\pmn\\files\\a21f8c87-eae9-4c04-b00d-41b3087df602\\srd9rTestFR21_08_2017.pdf", 
"tuPath": "C:\\pmn\\files\\a21f8c87-eae9-4c04-b00d-41b3087df602\\srd9rTestFR21_08_2017.pdf", 
"bmnPath": "C:\\pmn\\files\\a21f8c87-eae9-4c04-b00d-41b3087df602\\srd9rTestFR21_08_2017.pdf", 
"locale": { 
"internalId": 2, 
"language": { 
"internalId": 48, 
"languageCode": "fr", 
"languageName": "French" 
} 
}, 
"sections": [] 
}, 
"defaultEnReportModelSet": { 
"reference": "Sdr9r.pdf", 
"comment": "", 
"active": false, 
"expertPath": "C:\\pmn\\files\\200bba69-1be5-4640-b9e7-47f0d919145f\\srd9rTest.pdf", 
"validatorPath": "C:\\pmn\\files\\200bba69-1be5-4640-b9e7-47f0d919145f\\srd9rTest.pdf", 
"tuPath": "C:\\pmn\\files\\200bba69-1be5-4640-b9e7-47f0d919145f\\srd9rTest.pdf", 
"bmnPath": "C:\\pmn\\files\\200bba69-1be5-4640-b9e7-47f0d919145f\\srd9rTest.pdf", 
"locale": { 
"internalId": 1, 
"language": { 
"internalId": 41, 
"languageCode": "en", 
"languageName": "English" 
} 
}, 
"sections": [] 
}, 
"committees": [], 
"subsidies": "No", 
"softSub": "", 
"hardSub": "", 
"validatorPath": null, 
"reference": "IMUPT17" 
}, 
"application": { 
"internalId": 53, 
"state": "APPROVED", 
"companyName": "LB Consulting", 
"codeName": "ca9vovl30tg83k6zdunmi", 
"subregion": "Ariana", 
"legalForm": "SARL", 
"registrationNumber": "7850026", 
"taxIdentification": "459663", 
"belongToGroup": false, 
"group": "", 
"corpPurpose": "", 
"hq": { 
"address": "", 
"email": "", 
"website": "", 
"phone": "", 
"fax": "" 
}, 
"pu": { 
"address": "", 
"email": "", 
"website": "", 
"phone": "", 
"fax": "" 
}, 
"cpFullName": "", 
"cpFunction": "", 
"dc": "", 
"creationDate": null, 
"startingActivityDate": null, 
"sc": { 
"amount": 0, 
"national": 0, 
"international": 0 
}, 
"mainActivity": { 
"internalId": 47, 
"code": "52", 
"title": "Warehousing and support activities for transportation", 
"parent": { 
"internalId": 8, 
"code": "H", 
"title": "Transportation and storage" 
} 
}, 
"ipm": "", 
"esit": null, 
"mainMarket": "", 
"employmentNumber": 600, 
"currency": { 
"internalId": 143, 
"currencyCode": "TND", 
"currencyName": "Tunisian Dinar" 
}, 
"country": { 
"internalId": 224, 
"a3Code": "TUN", 
"a2Code": "TN", 
"countryName": "Tunisia", 
"nativeCountryName": "Tunisia" 
}, 
"reference": "IMUPT17_53" 
}, 
"decision": null, 
"reference": "IMUPT17_61", 
"instanceName": "Report" 
}, 
+0

你可以嘗試http://underscorejs.org/#groupBy – marvel308

+1

[有沒有這樣的事情作爲一個 「JSON對象」(http://benalman.com/news/ 2010/03/theres-no-such-thing-as-a-json /) – Andreas

+0

'我想獲取按項目分組的對象 - 你的javascript對象(不是JSON)只有一個'project'所以目前還不清楚你'試着做 – Jamiec

回答

0

如果我理解正確的你,我想你想要的這裏是提取從您的響應對象project關鍵。如果我沒有錯,那麼你共享的對象將是一個對象的數組,其中大多數對象具有project關鍵屬性

如果上述假設是你所尋找的,那麼這可能是一個可能的解決方案。

var data = [{ 
 
    "internalId": 60, 
 
    "state": "DIAGNOSIS_APPROVAL", 
 
    "project": { 
 
    "internalId": 25, 
 
    "acronym": "IMUPT", 
 
    "label": "IMUP216", 
 
    "comment": "", 
 
    "sap": "58", 
 
    "startingDate": 1488841200000, 
 
    "endingDate": 1553209200000, 
 
    "currency": { 
 
     "internalId": 143, 
 
     "currencyCode": "TND", 
 
     "currencyName": "Tunisian Dinar" 
 
    }, 
 
    "budget": 250000000, 
 
    "defaultFrReportModelSet": { 
 
     "reference": "Sdr9r_fr.pdf", 
 
     "comment": "", 
 
     "active": false, 
 
     "expertPath": "", 
 
     "validatorPath": "", 
 
     "tuPath": "", 
 
     "bmnPath": "", 
 
     "locale": { 
 
     "internalId": 2, 
 
     "language": { 
 
      "internalId": 48, 
 
      "languageCode": "fr", 
 
      "languageName": "French" 
 
     } 
 
     }, 
 
     "sections": [] 
 
    }, 
 
    "defaultEnReportModelSet": { 
 
     "reference": "Sdr9r.pdf", 
 
     "comment": "", 
 
     "active": false, 
 
     "expertPath": "C:\\pmn\\files\\200bba69-1be5-4640-b9e7-47f0d919145f\\srd9rTest.pdf", 
 
     "validatorPath": "", 
 
     "tuPath": "", 
 
     "bmnPath": "", 
 
     "locale": { 
 
     "internalId": 1, 
 
     "language": { 
 
      "internalId": 41, 
 
      "languageCode": "en", 
 
      "languageName": "English" 
 
     } 
 
     }, 
 
     "sections": [] 
 
    }, 
 
    "committees": [], 
 
    "subsidies": "No", 
 
    "softSub": "", 
 
    "hardSub": "", 
 
    "validatorPath": null, 
 
    "reference": "IMUPT17" 
 
    }, 
 
    "application": { 
 
    "internalId": 52, 
 
    "state": "APPROVED", 
 
    "companyName": "PicoSoft", 
 
    "codeName": "43bru532x8av9nxez5mi", 
 
    "subregion": "Ariana", 
 
    "legalForm": "SARL", 
 
    "registrationNumber": "45215455", 
 
    "taxIdentification": "455255656", 
 
    "belongToGroup": false, 
 
    "group": "", 
 
    "corpPurpose": "", 
 
    "hq": { 
 
     "address": "", 
 
     "email": "", 
 
     "website": "", 
 
     "phone": "", 
 
     "fax": "" 
 
    }, 
 
    "pu": { 
 
     "address": "", 
 
     "email": "", 
 
     "website": "", 
 
     "phone": "", 
 
     "fax": "" 
 
    }, 
 
    "cpFullName": "", 
 
    "cpFunction": "", 
 
    "dc": "", 
 
    "creationDate": 983746800000, 
 
    "startingActivityDate": 983746800000, 
 
    "sc": { 
 
     "amount": 0, 
 
     "national": 0, 
 
     "international": 0 
 
    }, 
 
    "mainActivity": { 
 
     "internalId": 53, 
 
     "code": "60", 
 
     "title": "Programming and broadcasting activities", 
 
     "parent": { 
 
     "internalId": 10, 
 
     "code": "J", 
 
     "title": "Information and communication" 
 
     } 
 
    }, 
 
    "ipm": "", 
 
    "esit": null, 
 
    "mainMarket": "", 
 
    "employmentNumber": 25, 
 
    "currency": { 
 
     "internalId": 143, 
 
     "currencyCode": "TND", 
 
     "currencyName": "Tunisian Dinar" 
 
    }, 
 
    "country": { 
 
     "internalId": 224, 
 
     "a3Code": "TUN", 
 
     "a2Code": "TN", 
 
     "countryName": "Tunisia", 
 
     "nativeCountryName": "Tunisia" 
 
    }, 
 
    "reference": "IMUPT17_52" 
 
    }, 
 
    "decision": null, 
 
    "reference": "IMUPT17_60", 
 
    "instanceName": "Report" 
 
}, 
 
{ 
 
    "internalId": 60, 
 
    "state": "DIAGNOSIS_APPROVAL", 
 
    "project": { 
 
    "internalId": 5675676, 
 
    "acronym": "IMUPT", 
 
    "label": "IMUP216", 
 
    "comment": "", 
 
    "sap": "58", 
 
    "startingDate": 1488841200000, 
 
    "endingDate": 1553209200000, 
 
    "currency": { 
 
     "internalId": 143, 
 
     "currencyCode": "TND", 
 
     "currencyName": "Tunisian Dinar" 
 
    }, 
 
    "budget": 250000000, 
 
    "defaultFrReportModelSet": { 
 
     "reference": "Sdr9r_fr.pdf", 
 
     "comment": "", 
 
     "active": false, 
 
     "expertPath": "", 
 
     "validatorPath": "", 
 
     "tuPath": "", 
 
     "bmnPath": "", 
 
     "locale": { 
 
     "internalId": 2, 
 
     "language": { 
 
      "internalId": 48, 
 
      "languageCode": "fr", 
 
      "languageName": "French" 
 
     } 
 
     }, 
 
     "sections": [] 
 
    }, 
 
    "defaultEnReportModelSet": { 
 
     "reference": "Sdr9r.pdf", 
 
     "comment": "", 
 
     "active": false, 
 
     "expertPath": "C:\\pmn\\files\\200bba69-1be5-4640-b9e7-47f0d919145f\\srd9rTest.pdf", 
 
     "validatorPath": "", 
 
     "tuPath": "", 
 
     "bmnPath": "", 
 
     "locale": { 
 
     "internalId": 1, 
 
     "language": { 
 
      "internalId": 41, 
 
      "languageCode": "en", 
 
      "languageName": "English" 
 
     } 
 
     }, 
 
     "sections": [] 
 
    }, 
 
    "committees": [], 
 
    "subsidies": "No", 
 
    "softSub": "", 
 
    "hardSub": "", 
 
    "validatorPath": null, 
 
    "reference": "IMUPT17" 
 
    }, 
 
    "application": { 
 
    "internalId": 980980908, 
 
    "state": "APPROVED", 
 
    "companyName": "PicoSoft", 
 
    "codeName": "43bru532x8av9nxez5mi", 
 
    "subregion": "Ariana", 
 
    "legalForm": "SARL", 
 
    "registrationNumber": "45215455", 
 
    "taxIdentification": "455255656", 
 
    "belongToGroup": false, 
 
    "group": "", 
 
    "corpPurpose": "", 
 
    "hq": { 
 
     "address": "", 
 
     "email": "", 
 
     "website": "", 
 
     "phone": "", 
 
     "fax": "" 
 
    }, 
 
    "pu": { 
 
     "address": "", 
 
     "email": "", 
 
     "website": "", 
 
     "phone": "", 
 
     "fax": "" 
 
    }, 
 
    "cpFullName": "", 
 
    "cpFunction": "", 
 
    "dc": "", 
 
    "creationDate": 983746800000, 
 
    "startingActivityDate": 983746800000, 
 
    "sc": { 
 
     "amount": 0, 
 
     "national": 0, 
 
     "international": 0 
 
    }, 
 
    "mainActivity": { 
 
     "internalId": 53, 
 
     "code": "60", 
 
     "title": "Programming and broadcasting activities", 
 
     "parent": { 
 
     "internalId": 10, 
 
     "code": "J", 
 
     "title": "Information and communication" 
 
     } 
 
    }, 
 
    "ipm": "", 
 
    "esit": null, 
 
    "mainMarket": "", 
 
    "employmentNumber": 25, 
 
    "currency": { 
 
     "internalId": 143, 
 
     "currencyCode": "TND", 
 
     "currencyName": "Tunisian Dinar" 
 
    }, 
 
    "country": { 
 
     "internalId": 224, 
 
     "a3Code": "TUN", 
 
     "a2Code": "TN", 
 
     "countryName": "Tunisia", 
 
     "nativeCountryName": "Tunisia" 
 
    }, 
 
    "reference": "IMUPT17_52" 
 
    }, 
 
    "decision": null, 
 
    "reference": "IMUPT17_60", 
 
    "instanceName": "Report" 
 
} 
 
] 
 

 
var project=[]; 
 

 
for(var i=0;i<data.length;i++){ 
 
    for(var j=0;j<Object.entries(data[i]).length;j++){ 
 
    checkForData(Object.entries(data[i])[j][0]); 
 
    } 
 
} 
 

 
console.log(project); 
 

 
function checkForData(value){ 
 
    if(value === "project"){ 
 
     project.push(Object.entries(data[i])[j][1]); 
 
    } 
 
}