2015-11-06 31 views
0

我如何做一个字段的值,如果然后呢?比如我的数据,我用看起来像工作:JQ如果那么其他

{"_key": "USCA3DC_8f4521822c099c3e", 
    "partner_attributions": ["This business is a Yelp advertiser."], 
    "showcase_photos": [ 
["Mathnasium of Westwood - Westwood, CA, United States. Nice and  caring instructors", "http://s3-media1.fl.yelpcdn.com/bphoto/KeKAhvy2HHY4KGpvA24VaA/ls.jpg"], 
["Mathnasium of Westwood - Westwood, CA, United States. Prize box and estimation jar!", "http://s3-media3.fl.yelpcdn.com/bphoto/lJWHHCAVaUMfeFD7GDKtHw/ls.jpg"], 
["Mathnasium of Westwood - Westwood, CA, United States. New table setup!!!!", "http://s3-media2.fl.yelpcdn.com/bphoto/kVYJrYqDRHPOH4F2uTuFVg/ls.jpg"], 
["Mathnasium of Westwood - Westwood, CA, United States. Halloween party", "http://s3-media3.fl.yelpcdn.com/bphoto/wKm5KjF0V8MsPTVSuofPEQ/180s.jpg"], 
["Mathnasium of Westwood - Westwood, CA, United States", "http://s3-media4.fl.yelpcdn.com/bphoto/r2981msJm0c1ocU09blb1A/180s.jpg"], 
["Mathnasium of Westwood - Westwood, CA, United States", "http://s3-media3.fl.yelpcdn.com/bphoto/r2Vgo18YKeUojDvjQMRF_A/180s.jpg"] 
    ], 
    "review_count": "24", 
    "yelp_id": "t7WyXcABE3xj20G-UqXalA", 
    "rating_value": "5.0", 
    "coordinates": { 
"latitude": "34.042568", 
"longitude": "-118.431038" 
    } 
} 

这只是其中的一个小样本,但我使用这个表达式解析它:

{_key, last_visited, name, phone, price_range, rating_value, review_count, updated, url, website, yelp_id} + (if (.partner_attributions | length) > 0 then .partner_attributions == "yes" else .partner_attributions == "no" end) + ([leaf_paths as $path | {"key": $path | map(tostring) | join("_"),"value": getpath($path)}] | from_entries) 

我想要做的就是对于Partner_attributions字段,如果有其他情况,那么如果有某件事情会使其成为“是”,并且它为空使其成为“否”。我尝试了几件没有成功的事情,似乎很简单,但无法解决问题。

有人可以帮忙吗?

回答

0

您需要创建一个实际的对象添加到第一个对象。在if表达更改为:

{partner_attributions: (if (.partner_attributions | length) > 0 then "yes" else "no" end)} 
+0

啊是的,谢谢你 – Tom

0

更重要的是可能:

.partner_attributions |= (if length > 0 then "yes" else "no" end) 

这只是更新了一个字段,而无需修改任何东西。

相关问题