- Overview
- Tutorials
- Getting started
- Get started with Canton and the JSON Ledger API
- Get Started with Canton, the JSON Ledger API, and TypeScript
- Get started with Canton Network App Dev Quickstart
- Get started with smart contract development
- Basic contracts
- Test templates using Daml scripts
- Build the Daml Archive (.dar) file
- Data types
- Transform contracts using choices
- Add constraints to a contract
- Parties and authority
- Compose choices
- Handle exceptions
- Work with dependencies
- Functional programming 101
- The Daml standard library
- Test Daml contracts
- Next steps
- Application development
- Getting started
- Development how-tos
- Component how-tos
- Explanations
- References
- Application development
- Smart contract development
- Daml language cheat sheet
- Daml language reference
- Daml standard library
- DA.Action.State.Class
- DA.Action.State
- DA.Action
- DA.Assert
- DA.Bifunctor
- DA.Crypto.Text
- DA.Date
- DA.Either
- DA.Exception
- DA.Fail
- DA.Foldable
- DA.Functor
- DA.Internal.Interface.AnyView.Types
- DA.Internal.Interface.AnyView
- DA.List.BuiltinOrder
- DA.List.Total
- DA.List
- DA.Logic
- DA.Map
- DA.Math
- DA.Monoid
- DA.NonEmpty.Types
- DA.NonEmpty
- DA.Numeric
- DA.Optional
- DA.Record
- DA.Semigroup
- DA.Set
- DA.Stack
- DA.Text
- DA.TextMap
- DA.Time
- DA.Traversable
- DA.Tuple
- DA.Validation
- GHC.Show.Text
- GHC.Tuple.Check
- Prelude
- Smart contract upgrading reference
- Glossary of concepts
Daml-LF JSON encoding¶
Daml-LF values are represented as JSON values in the JSON Ledger API. This representation is used whenever the JSON Ledger API expects a Daml record or value, such as in the createArguments field of the CreateCommand component. The conversion from Daml values to JSON also occurs when a value is returned from the JSON Ledger API. For more information about Daml types, see Built-in Types.
Daml LF type |
JSON Type |
Example |
---|---|---|
Int |
string (number accepted as input) [1] |
1234567890 |
Decimal |
string (number accepted as input) [1] |
“1234.56” |
Timestamp |
string ISO 8601 timestamp( |
“2023-04-06T04:30:23.1234569Z” |
Date |
string ISO 8601 date ( |
“2023-04-06” |
Unit |
|
|
Text |
string |
“my text value” |
Bool |
boolean |
false |
ContractId |
string |
“1234:56:7890” |
Party |
string |
“Alice:1234567890” |
Record |
JSON object |
{
"field1Label":{ /*value of field1*/},
"field2Label": { /*value of field2*/},
/*...*/
}
|
List |
JSON array |
|
TextMap |
JSON object |
|
Variant |
{
"tag": "<constructor_name>",
"value": "<variant_value>"
}
|
data Location
= InHand
; InAccount Account
deriving (Eq, Show)
{
"tag": "InAccount",
"value": {
"number": "CH-1234567890",
"bank": { }
}
}
|
Optional |
JSON value when defined or null when empty |
null |
Enum |
string enum value name |
|
Footnotes