首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将包含字符串的复杂json对象转换为一般json对象(如out )

如何将包含字符串的复杂json对象转换为一般json对象(如out )
EN

Stack Overflow用户
提问于 2018-10-14 11:46:53
回答 2查看 87关注 0票数 1

嗨,我的输入json是这样的,我希望使用送交_.map函数将它转换成预期的输出[

代码语言:javascript
运行
复制
    {
    "img":"imageurl",
/*
* 提示:该行代码过长,系统自动注释不进行高亮。一键复制会移除系统注释 
* "qualityJsonString": "{\"MorphoScore\":\"204\",\"AwareScore\":\"0\",\"QualityCategory\":\"Medium\",\"QualityAttributes\":{\"ISO\":{\"Tinted Glasses\":true,\"Horizontally Centered Face\":true,\"Hotspots\":true,\"Vertical Face Position\":false,\"Exposure\":false,\"Length of Head\":false,\"Sharpness\":true,\"Compliant\":false,\"Width of Head\":true,\"Uniform Lighting\":true,\"Greyscale  Profile\":true,\"Natural Skin Colour\":true,\"Frontal Pose\":true,\"Resolution\":false},\"Aware\":[{\"qualityParameter\":\"PERCENT_FACIAL_BRIGHTNESS\",\"qualityScore\":94.140625},{\"qualityParameter\":\"SMILE_LIKELIHOOD\",\"qualityScore\":7.766985283983502},{\"qualityParameter\":\"RIGHT_EYE_CLOSED_LIKELIHOOD\",\"qualityScore\":0.0},{\"qualityParameter\":\"DARK_GLASSES_LIKELIHOOD\",\"qualityScore\":0.0},{\"qualityParameter\":\"FACIAL_DYNAMIC_RANGE\",\"qualityScore\":7.912889336229961},{\"qualityParameter\":\"OFF_ANGLE_GAZE_LIKELIHOOD\",\"qualityScore\":19.230365753173473},{\"qualityParameter\":\"PERCENT_BACKGROUND_UNIFORMITY\",\"qualityScore\":3.373901808553242},{\"qualityParameter\":\"DEGREE_OF_ILLUMINATION_ASYMMETRY\",\"qualityScore\":67.58262728281615},{\"qualityParameter\":\"HEIGHT_TO_WIDTH_RATIO\",\"qualityScore\":1.2487562189054726},{\"qualityParameter\":\"DEGREE_OF_CLUTTER\",\"qualityScore\":3.373901808553242},{\"qualityParameter\":\"FACE_COUNT\"},{\"qualityParameter\":\"POSE_ANGLE_YAW\",\"qualityScore\":-1.655534847997771},{\"qualityParameter\":\"HAIR_COVERED_RIGHT_EYE_LIKELIHOOD\",\"qualityScore\":0.0},{\"qualityParameter\":\"LEFT_EYE_CLOSED_LIKELIHOOD\",\"qualityScore\":0.0},{\"qualityParameter\":\"PERCENT_FACIAL_SATURATION\",\"qualityScore\":1.3333333333333286},{\"qualityParameter\":\"REDEYE_LIKELIHOOD\",\"qualityScore\":0.0},{\"qualityParameter\":\"HEAD_HEIGHT_TO_IMAGE_HEIGHT_RATIO\",\"qualityScore\":0.9083665338645418},{\"qualityParameter\":\"MASK_LIKELIHOOD\",\"qualityScore\":66.04184751157408},{\"qualityParameter\":\"EYE_SEPARATION\",\"qualityScore\":71.55286507191728},{\"qualityParameter\":\"SHARPNESS_LIKELIHOOD\",\"qualityScore\":75.54344930211819},{\"qualityParameter\":\"JPEG_QUALITY_LEVEL\",\"qualityScore\":3.373901808553242},{\"qualityParameter\":\"FOCUS_LIKELIHOOD\",\"qualityScore\":82.07793032254156},{\"qualityParameter\":\"EYE_AXIS_ANGLE\",\"qualityScore\":2.2025981617658053},{\"qualityParameter\":\"BACKGROUND_PAD_TYPE\",\"qualityScore\":3.373901808553242},{\"qualityParameter\":\"CENTERLINE_LOCATION_RATIO\",\"qualityScore\":0.48880597014925375},{\"qualityParameter\":\"J2K_ROI_FOREGROUND_COMPRESSION_RATIO\",\"qualityScore\":3.373901808553242},{\"qualityParameter\":\"LEFT_EYE_VALID_LIKELIHOOD\",\"qualityScore\":76.16672180697158},{\"qualityParameter\":\"HAIR_COVERED_LEFT_EYE_LIKELIHOOD\",\"qualityScore\":0.0},{\"qualityParameter\":\"FOREHEAD_COVERING_LIKELIHOOD\",\"qualityScore\":3.373901808553242},{\"qualityParameter\":\"GLASSES_LIKELIHOOD\",\"qualityScore\":2.7458807359307684},{\"qualityParameter\":\"HEAVY_FRAMES_LIKELIHOOD\",\"qualityScore\":0.0},{\"qualityParameter\":\"GLARE_LIKELIHOOD\",\"qualityScore\":0.0},{\"qualityParameter\":\"IMAGE_WIDTH_TO_HEAD_WIDTH_RATIO\",\"qualityScore\":1.4055944055944056},{\"qualityParameter\":\"POSE_ANGLE_PITCH\",\"qualityScore\":-1.1384115595433095},{\"qualityParameter\":\"RIGHT_EYE_VALID_LIKELIHOOD\",\"qualityScore\":75.0017445765546},{\"qualityParameter\":\"BRIGHTNESS_SCORE\",\"qualityScore\":100.0},{\"qualityParameter\":\"J2K_ROI_BACKGROUND_COMPRESSION_RATIO\",\"qualityScore\":3.373901808553242},{\"qualityParameter\":\"BACKGROUND_TYPE\",\"qualityScore\":3.373901808553242},{\"qualityParameter\":\"UNNATURAL_COLOR_LIKELIHOOD\",\"qualityScore\":8.087372947615322},{\"qualityParameter\":\"NUMBER_CHANNELS\",\"qualityScore\":3.0},{\"qualityParameter\":\"SHADOWS_LIKELIHOOD\",\"qualityScore\":7.169740789649495},{\"qualityParameter\":\"EYE_CONTRAST\",\"qualityScore\":87.5},{\"qualityParameter\":\"PERCENT_BACKGROUND_GRAY\",\"qualityScore\":3.373901808553242},{\"qualityParameter\":\"EYE_AXIS_LOCATION_RATIO\",\"qualityScore\":0.6180278884462151},{\"qualityParameter\":\"IMAGE_FORMAT\",\"qualityScore\":4.0},{\"qualityParameter\":\"J2K_COMPRESSION_RATIO\",\"qualityScore\":3.373901808553242}],\"ISOBestPractice\":{\"Mouth Closed Best Practice\":true,\"Eyes not Red  Best Practice\":true,\"Eyes Gaze Best Practice\":true,\"Resolution Best Practice\":false,\"Uniform Background Best Practice\":false,\"Frontal Pose Best Practice\":true,\"Width of Head Best Practice\":true,\"Length of Head Best Practice\":false,\"Eyes Open Best Practice\":true,\"Compliant Best Practice\":false,\"Image Width to Height Best Practice\":true},\"ICAO\":{\"No Dark Lenses and no heavy frames and no glares\":true,\"Natural skin tones\":true,\"Facing square on to the camera\":true,\"Face coverage upto 70ָ0% of the photograph\":false,\"Colour neutral\":true,\"No image more than 6-months old\":true,\"Uniform lighting and no shadows\":true,\"Compliant\":false,\"Plain light-coloured background\":false,\"Eye Separation\":false,\"Forehead coverage and Mask Detection\":true,\"One face in image and no smile\":true,\"Sharp and Focus\":true,\"Brightness and Contrast\":false,\"Looking directly at the camera\":true,\"Eyes open and clearly visible\":true},\"DepartmentStandard\":{\"Has Natural Skin Colour\":true,\"Mouth Closed\":true,\"Good Vertical Face Position\":false,\"Horizontally Centered Face\":true,\"Eyes not Red\":true,\"Length of Head\":false,\"Compliant\":false,\"Eyes Open\":true,\"Width of Head\":true,\"No Tinted Glasses\":false,\"Good Exposure\":false,\"Good Greyscale\":true,\"No Hotspots\":true,\"Frontal Pose\":true,\"One Face\":true,\"Resolution\":false}}}"
*/
    },{

        "img":"imageurl",
    "qualityJsonString": "{\"MorphoScore\":\"204\"}
    }]

在json上面有一个名为"qualityJsonString“的字段,这个对象是一个字符串json,因此要将此字符串转换为适当的json格式,将面临问题。

我需要像这样把json放在下面的格式

代码语言:javascript
运行
复制
{"img":"image url",
  "QualityAttributes": {
    "ISO":{
     "Tinted Glasses":true,
      ......
     },
     "ISOBestPractice":{
        "Mouth Closed Best Practice":true,
         ......
     },
     "ICAO":{
        "No Dark Lenses and no heavy frames and no glares":true,
         ......
     },
     "DepartmentStandard":{
        "Has Natural Skin Colour":true,
        .....
     }

  } 


},
{"img":"image url",
  "QualityAttributes": {
    "ISO":{
     "Tinted Glasses":true,
      ......
     },
     "ISOBestPractice":{
        "Mouth Closed Best Practice":true,
         ......
     },
     "ICAO":{
        "No Dark Lenses and no heavy frames and no glares":true,
         ......
     },
     "DepartmentStandard":{
        "Has Natural Skin Colour":true,
        .....
     }

  } 


}

请帮助我这样做,我尝试了field.toJSON,但它没有转换完整的jSON

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-14 13:12:46

通过删除错误,我在这里解析了您的输入解析Json

以下提交代码将为您提供所需的输出。

代码语言:javascript
运行
复制
_.map(myInputArray, (element) => (
    {
       img: element.img, 
       QualityAttributes: element.qualityJsonString.QualityAttributes
    }));
票数 0
EN

Stack Overflow用户

发布于 2018-10-14 12:04:13

你需要解析它。

代码语言:javascript
运行
复制
var json = {
    "img":"imageurl",
/*
* 提示:该行代码过长,系统自动注释不进行高亮。一键复制会移除系统注释 
* "qualityJsonString": "{\"MorphoScore\":\"204\",\"AwareScore\":\"0\",\"QualityCategory\":\"Medium\",\"QualityAttributes\":{\"ISO\":{\"Tinted Glasses\":true,\"Horizontally Centered Face\":true,\"Hotspots\":true,\"Vertical Face Position\":false,\"Exposure\":false,\"Length of Head\":false,\"Sharpness\":true,\"Compliant\":false,\"Width of Head\":true,\"Uniform Lighting\":true,\"Greyscale  Profile\":true,\"Natural Skin Colour\":true,\"Frontal Pose\":true,\"Resolution\":false},\"Aware\":[{\"qualityParameter\":\"PERCENT_FACIAL_BRIGHTNESS\",\"qualityScore\":94.140625},{\"qualityParameter\":\"SMILE_LIKELIHOOD\",\"qualityScore\":7.766985283983502},{\"qualityParameter\":\"RIGHT_EYE_CLOSED_LIKELIHOOD\",\"qualityScore\":0.0},{\"qualityParameter\":\"DARK_GLASSES_LIKELIHOOD\",\"qualityScore\":0.0},{\"qualityParameter\":\"FACIAL_DYNAMIC_RANGE\",\"qualityScore\":7.912889336229961},{\"qualityParameter\":\"OFF_ANGLE_GAZE_LIKELIHOOD\",\"qualityScore\":19.230365753173473},{\"qualityParameter\":\"PERCENT_BACKGROUND_UNIFORMITY\",\"qualityScore\":3.373901808553242},{\"qualityParameter\":\"DEGREE_OF_ILLUMINATION_ASYMMETRY\",\"qualityScore\":67.58262728281615},{\"qualityParameter\":\"HEIGHT_TO_WIDTH_RATIO\",\"qualityScore\":1.2487562189054726},{\"qualityParameter\":\"DEGREE_OF_CLUTTER\",\"qualityScore\":3.373901808553242},{\"qualityParameter\":\"FACE_COUNT\"},{\"qualityParameter\":\"POSE_ANGLE_YAW\",\"qualityScore\":-1.655534847997771},{\"qualityParameter\":\"HAIR_COVERED_RIGHT_EYE_LIKELIHOOD\",\"qualityScore\":0.0},{\"qualityParameter\":\"LEFT_EYE_CLOSED_LIKELIHOOD\",\"qualityScore\":0.0},{\"qualityParameter\":\"PERCENT_FACIAL_SATURATION\",\"qualityScore\":1.3333333333333286},{\"qualityParameter\":\"REDEYE_LIKELIHOOD\",\"qualityScore\":0.0},{\"qualityParameter\":\"HEAD_HEIGHT_TO_IMAGE_HEIGHT_RATIO\",\"qualityScore\":0.9083665338645418},{\"qualityParameter\":\"MASK_LIKELIHOOD\",\"qualityScore\":66.04184751157408},{\"qualityParameter\":\"EYE_SEPARATION\",\"qualityScore\":71.55286507191728},{\"qualityParameter\":\"SHARPNESS_LIKELIHOOD\",\"qualityScore\":75.54344930211819},{\"qualityParameter\":\"JPEG_QUALITY_LEVEL\",\"qualityScore\":3.373901808553242},{\"qualityParameter\":\"FOCUS_LIKELIHOOD\",\"qualityScore\":82.07793032254156},{\"qualityParameter\":\"EYE_AXIS_ANGLE\",\"qualityScore\":2.2025981617658053},{\"qualityParameter\":\"BACKGROUND_PAD_TYPE\",\"qualityScore\":3.373901808553242},{\"qualityParameter\":\"CENTERLINE_LOCATION_RATIO\",\"qualityScore\":0.48880597014925375},{\"qualityParameter\":\"J2K_ROI_FOREGROUND_COMPRESSION_RATIO\",\"qualityScore\":3.373901808553242},{\"qualityParameter\":\"LEFT_EYE_VALID_LIKELIHOOD\",\"qualityScore\":76.16672180697158},{\"qualityParameter\":\"HAIR_COVERED_LEFT_EYE_LIKELIHOOD\",\"qualityScore\":0.0},{\"qualityParameter\":\"FOREHEAD_COVERING_LIKELIHOOD\",\"qualityScore\":3.373901808553242},{\"qualityParameter\":\"GLASSES_LIKELIHOOD\",\"qualityScore\":2.7458807359307684},{\"qualityParameter\":\"HEAVY_FRAMES_LIKELIHOOD\",\"qualityScore\":0.0},{\"qualityParameter\":\"GLARE_LIKELIHOOD\",\"qualityScore\":0.0},{\"qualityParameter\":\"IMAGE_WIDTH_TO_HEAD_WIDTH_RATIO\",\"qualityScore\":1.4055944055944056},{\"qualityParameter\":\"POSE_ANGLE_PITCH\",\"qualityScore\":-1.1384115595433095},{\"qualityParameter\":\"RIGHT_EYE_VALID_LIKELIHOOD\",\"qualityScore\":75.0017445765546},{\"qualityParameter\":\"BRIGHTNESS_SCORE\",\"qualityScore\":100.0},{\"qualityParameter\":\"J2K_ROI_BACKGROUND_COMPRESSION_RATIO\",\"qualityScore\":3.373901808553242},{\"qualityParameter\":\"BACKGROUND_TYPE\",\"qualityScore\":3.373901808553242},{\"qualityParameter\":\"UNNATURAL_COLOR_LIKELIHOOD\",\"qualityScore\":8.087372947615322},{\"qualityParameter\":\"NUMBER_CHANNELS\",\"qualityScore\":3.0},{\"qualityParameter\":\"SHADOWS_LIKELIHOOD\",\"qualityScore\":7.169740789649495},{\"qualityParameter\":\"EYE_CONTRAST\",\"qualityScore\":87.5},{\"qualityParameter\":\"PERCENT_BACKGROUND_GRAY\",\"qualityScore\":3.373901808553242},{\"qualityParameter\":\"EYE_AXIS_LOCATION_RATIO\",\"qualityScore\":0.6180278884462151},{\"qualityParameter\":\"IMAGE_FORMAT\",\"qualityScore\":4.0},{\"qualityParameter\":\"J2K_COMPRESSION_RATIO\",\"qualityScore\":3.373901808553242}],\"ISOBestPractice\":{\"Mouth Closed Best Practice\":true,\"Eyes not Red  Best Practice\":true,\"Eyes Gaze Best Practice\":true,\"Resolution Best Practice\":false,\"Uniform Background Best Practice\":false,\"Frontal Pose Best Practice\":true,\"Width of Head Best Practice\":true,\"Length of Head Best Practice\":false,\"Eyes Open Best Practice\":true,\"Compliant Best Practice\":false,\"Image Width to Height Best Practice\":true},\"ICAO\":{\"No Dark Lenses and no heavy frames and no glares\":true,\"Natural skin tones\":true,\"Facing square on to the camera\":true,\"Face coverage upto 70ָ0% of the photograph\":false,\"Colour neutral\":true,\"No image more than 6-months old\":true,\"Uniform lighting and no shadows\":true,\"Compliant\":false,\"Plain light-coloured background\":false,\"Eye Separation\":false,\"Forehead coverage and Mask Detection\":true,\"One face in image and no smile\":true,\"Sharp and Focus\":true,\"Brightness and Contrast\":false,\"Looking directly at the camera\":true,\"Eyes open and clearly visible\":true},\"DepartmentStandard\":{\"Has Natural Skin Colour\":true,\"Mouth Closed\":true,\"Good Vertical Face Position\":false,\"Horizontally Centered Face\":true,\"Eyes not Red\":true,\"Length of Head\":false,\"Compliant\":false,\"Eyes Open\":true,\"Width of Head\":true,\"No Tinted Glasses\":false,\"Good Exposure\":false,\"Good Greyscale\":true,\"No Hotspots\":true,\"Frontal Pose\":true,\"One Face\":true,\"Resolution\":false}}}"
*/
    };

var parsedQualityJSON = $.parseJSON(json.qualityJsonString);
console.log(parsedQualityJSON);

在该示例中,parsedQualityJSON变量保存新的json对象。

我确实删除了Json字符串的第二部分,因为它的格式不正确,但由于与第一部分相比缺少数据,我认为这是因为您是如何复制Json字符串的,如果不是像注释中提到的那样,您需要检查Json字符串的使用情况。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52802304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档