我有json
{
"file1": [{
"username": "myname",
"groupname": "mypassword",
"environment": [{
"name": "UMASK",
"value": "022"
},
{
"name": "DEBUG",
"value": "2"
}]
}]
}
并希望将DEBUG的值更改为5.
尝试使用以下命令
jq .file1 [0] .environment sandeep.json | jq'(。[] | select(.name == " DEBUG")| .value)| =" 5"'
这将返回json的特定部分,如
[
{
"name": "UMASK",
"value": "022"
},
{
"name": "DEBUG",
"value": "5"
}
]
但我希望看到更改值的完整json
{
"file1": [{
"username": "myname",
"groupname": "mypassword",
"environment": [{
"name": "UMASK",
"value": "022"
},
{
"name": "DEBUG",
"value": "5"
}]
}]
}
请建议我
答案 0 :(得分:1)
应该是:
IEnumerable<MyRecord> Request = null;
if (!status.Equals(""))
{
if (deliveryDateFrom == null && caseDateFrom == null && pickupDateFrom == null)
{
//only request status
Request = GetRecord("EquipRequest")
.Where(r => r.Status == status);
}
else if (deliveryDateFrom != null && caseDateFrom == null && pickupDateFrom == null)
{
// request status and delivery date
Request = GetRecord("EquipRequest")
.Where(r => r.Status == status && (r.DeliveryDate >= deliveryDateFrom && r.DeliveryDate <= deliveryDateTo));
}
else if (deliveryDateFrom == null && caseDateFrom != null && pickupDateFrom == null)
{
// request status and case date
Request = GetRecord("EquipRequest")
.Where(r => r.Status == status && (r.CaseDate >= caseDateFrom && r.CaseDate <= caseDateTo));
}
else if (deliveryDateFrom == null && caseDateFrom == null && pickupDateFrom != null)
{
// request status and pickup date
Request = GetRecord("EquipRequest")
.Where(r => r.Status == status && (r.PickupDate >= pickupDateFrom && r.PickupDate <= pickupDateTo));
}
else if (deliveryDateFrom != null && caseDateFrom != null && pickupDateFrom == null)
{
// request status, delivery date and case date
Request = GetRecord("EquipRequest")
.Where(r => r.Status == status && (r.DeliveryDate >= deliveryDateFrom && r.DeliveryDate <= deliveryDateTo)
&& (r.CaseDate >= caseDateFrom && r.CaseDate <= caseDateTo));
}
else if (deliveryDateFrom != null && caseDateFrom == null && pickupDateFrom != null)
{
// request status, delivery date and pickup date
Request = GetRecord("EquipRequest")
.Where(r => r.Status == status && (r.DeliveryDate >= deliveryDateFrom && r.DeliveryDate <= deliveryDateTo)
&& (r.PickupDate >= pickupDateFrom && r.PickupDate <= pickupDateTo));
}
else if (deliveryDateFrom == null && caseDateFrom != null && pickupDateFrom != null)
{
// request status, case date and pickup date
Request = GetRecord("EquipRequest")
.Where(r => r.Status == status && (r.CaseDate >= caseDateFrom && r.CaseDate <= caseDateTo)
&& (r.PickupDate >= pickupDateFrom && r.PickupDate <= pickupDateTo));
}
else if (deliveryDateFrom != null && caseDateFrom != null && pickupDateFrom != null)
{
// request status, delivery date, case date and pickup date
Request = GetRecord("EquipRequest")
.Where(r => r.Status == status && (r.DeliveryDate >= deliveryDateFrom && r.DeliveryDate <= deliveryDateTo)
&& (r.CaseDate >= caseDateFrom && r.CaseDate <= caseDateTo)
&& (r.PickupDate >= pickupDateFrom && r.PickupDate <= pickupDateTo));
}
}
输出:
jq '(.file1[].environment[]|select(.name=="DEBUG").value) |= 5' file.json