如何使用 Argonaut 解析 Map[String,String]

How to parse a Map[String,String] with Argonaut

我想解析如下内容:

{
          "OutputDocumentType": "receipt",
          "ParsedFields": {
            "smart_tags": "R°\nVul\nZe",
            "vendor": "",
            "vendor_terms": "",
            "vendor_warranty": "",
            "vendor_support": "",
            "vendor_url": "",
            "expense_category": "General Retail",
            "tracking_no": null,
            "carrier_name": null,
            "tracking_link": null,
            "tracking_status": null,
            "shipping_speed": null,
            "date_shipped": null,
            "date_estimated": null,
            "shipping_address_street_1": null,
            "shipping_address_street_2": null,
            "shipping_address_state_province": null,
            "shipping_address_city": null,
            "shipping_address_zip": null,
            "shipping_phone": null,
            "shipping_mobile": null,
            "shipping_fax": null,
            "account": "",
            "purchase_confirmation_no": "",
            "purchase_order_no": "",
            "purchase_time": "",
            "purchase_invoice_no": "",
            "purchase_invoice_date": "",
            "purchase_discounts": "",
            "subtotal_amount": "",
            "shipping_cost": "",
            "purchase_warranty": "",
            "transaction_id": "",
            "payment_address_street_1": "",
            "payment_address_street_2": "",
            "payment_address_city": "",
            "payment_address_state_province": "",
            "payment_address_zip": "",
            "payment_phone": "",
            "payment_mobile": "",
            "payment_fax": "",
            "receipt_date": "",
            "payment_type": "Cash",
            "total_amount": ".95"
          }
}

但是当我尝试时它在 tracking_no 处失败了,因为值为 null。我如何让它只接受 null 值?

只需将地图设为 Map[String,Option[String]] 即可解决。