@@ -34,10 +34,11 @@ declare(strict_types=1);
34
34
35
35
use Ergebnis\Json\Pointer;
36
36
37
- $referenceToken = Pointer\ReferenceToken::fromString('foo/bar ');
37
+ $referenceToken = Pointer\ReferenceToken::fromString('foo/9000/😆 ');
38
38
39
- $referenceToken->toJsonString(); // 'foo~1bar'
40
- $referenceToken->toString(); // 'foo/bar'
39
+ $referenceToken->toJsonString(); // 'foo~19000~😆'
40
+ $referenceToken->toString(); // 'foo/9000/😆'
41
+ $referenceToken->toUriFragmentIdentifierString(); // 'foo~19000~1%F0%9F%98%86'
41
42
```
42
43
43
44
You can create a ` ReferenceToken ` from a [ JSON ` string ` value] ( https://datatracker.ietf.org/doc/html/rfc6901#section-5 ) :
@@ -49,10 +50,27 @@ declare(strict_types=1);
49
50
50
51
use Ergebnis\Json\Pointer;
51
52
52
- $referenceToken = Pointer\ReferenceToken::fromJsonString('foo~1bar ');
53
+ $referenceToken = Pointer\ReferenceToken::fromJsonString('foo~19000~😆 ');
53
54
54
- $referenceToken->toJsonString(); // 'foo~1bar'
55
- $referenceToken->toString(); // 'foo/bar'
55
+ $referenceToken->toJsonString(); // 'foo~19000~😆'
56
+ $referenceToken->toString(); // 'foo/9000/😆'
57
+ $referenceToken->toUriFragmentIdentifierString(); // 'foo~19000~1%F0%9F%98%86'
58
+ ```
59
+
60
+ You can create a ` ReferenceToken ` from a [ URI fragmend identifier ` string ` value] ( https://datatracker.ietf.org/doc/html/rfc6901#section-6 ) :
61
+
62
+ ``` php
63
+ <?php
64
+
65
+ declare(strict_types=1);
66
+
67
+ use Ergebnis\Json\Pointer;
68
+
69
+ $referenceToken = Pointer\ReferenceToken::fromUriFragmentIdentifierString('foo~19000~1%F0%9F%98%86');
70
+
71
+ $referenceToken->toJsonString(); // 'foo~19000~😆'
72
+ $referenceToken->toString(); // 'foo/9000/😆'
73
+ $referenceToken->toUriFragmentIdentifierString(); // 'foo~19000~1%F0%9F%98%86'
56
74
```
57
75
58
76
You can create a ` ReferenceToken ` from an ` int ` value:
@@ -66,8 +84,9 @@ use Ergebnis\Json\Pointer;
66
84
67
85
$referenceToken = Pointer\ReferenceToken::fromInt(9001);
68
86
69
- $referenceToken->toJsonString(); // '9001'
70
- $referenceToken->toString(); // '9001'
87
+ $referenceToken->toJsonString(); // '9001'
88
+ $referenceToken->toString(); // '9001'
89
+ $referenceToken->toUriFragmentIdentifierString(); // '9001'
71
90
```
72
91
73
92
You can compare ` ReferenceToken ` s:
@@ -98,7 +117,8 @@ use Ergebnis\Json\Pointer;
98
117
99
118
$jsonPointer = Pointer\JsonPointer::document();
100
119
101
- $jsonPointer->toJsonString(); // ''
120
+ $jsonPointer->toJsonString(); // ''
121
+ $jsonPointer->toUriFragmentIdentifierString(); // '#'
102
122
```
103
123
104
124
You can create a ` JsonPointer ` from a [ JSON ` string ` representation] ( https://datatracker.ietf.org/doc/html/rfc6901#section-5 ) value:
@@ -110,9 +130,26 @@ declare(strict_types=1);
110
130
111
131
use Ergebnis\Json\Pointer;
112
132
113
- $jsonPointer = Pointer\JsonPointer::fromJsonString('/foo/bar');
133
+ $jsonPointer = Pointer\JsonPointer::fromJsonString('/foo/bar/😆');
134
+
135
+ $jsonPointer->toJsonString(); // '/foo/bar/😆'
136
+ $jsonPointer->toUriFragmentIdentifierString(); // '#/foo/bar/%F0%9F%98%86'
137
+ ```
138
+
139
+ You can create a ` JsonPointer ` from a [ URI fragment identifier ` string ` representation] ( https://datatracker.ietf.org/doc/html/rfc6901#section-6 ) value:
140
+
141
+ ``` php
142
+ <?php
143
+
144
+ declare(strict_types=1);
145
+
146
+ use Ergebnis\Json\Pointer;
147
+
148
+ $jsonPointer = Pointer\JsonPointer::fromJsonString('#/foo/bar/%F0%9F%98%86');
114
149
115
- $jsonPointer->toJsonString(); // '/foo/bar'
150
+ $jsonPointer->toJsonString(); // '/foo/bar/😆'
151
+ $jsonPointer->toUriFragmentIdentifierString(); // '#/foo/bar/%F0%9F%98%86'
152
+ $jsonPointer = Pointer\JsonPointer::fromUriFragmentIdentifierString('#foo/bar');
116
153
```
117
154
118
155
You can create a ` JsonPointer ` from ` ReferenceToken ` s:
@@ -131,7 +168,8 @@ $referenceTokens = [
131
168
132
169
$jsonPointer = Pointer\JsonPointer::fromReferenceTokens(...$referenceTokens);
133
170
134
- $jsonPointer->toJsonString(); // '/foo/bar'
171
+ $jsonPointer->toJsonString(); // '/foo/bar'
172
+ $jsonPointer->toUriFragmentIdentifierString(); // '#/foo/bar'
135
173
```
136
174
You can compare ` JsonPointer ` s:
137
175
@@ -163,7 +201,8 @@ $referenceToken = Pointer\ReferenceToken::fromString('baz');
163
201
164
202
$newJsonPointer = $jsonPointer->append($referenceToken);
165
203
166
- $newJsonPointer->toJsonString(); // '/foo/bar/baz'
204
+ $newJsonPointer->toJsonString(); // '/foo/bar/baz'
205
+ $newJsonPointer->toUriFragmentIdentifierString(); // '#foo/bar/baz'
167
206
```
168
207
169
208
## Changelog
0 commit comments