@@ -378,6 +378,9 @@ private Object writeReplace() {
378
378
case STRING :
379
379
builder .set (fieldName ).to ((String ) value );
380
380
break ;
381
+ case JSON :
382
+ builder .set (fieldName ).to (Value .json ((String ) value ));
383
+ break ;
381
384
case BYTES :
382
385
builder .set (fieldName ).to ((ByteArray ) value );
383
386
break ;
@@ -404,6 +407,9 @@ private Object writeReplace() {
404
407
case STRING :
405
408
builder .set (fieldName ).toStringArray ((Iterable <String >) value );
406
409
break ;
410
+ case JSON :
411
+ builder .set (fieldName ).toJsonArray ((Iterable <String >) value );
412
+ break ;
407
413
case BYTES :
408
414
builder .set (fieldName ).toBytesArray ((Iterable <ByteArray >) value );
409
415
break ;
@@ -480,6 +486,7 @@ private static Object decodeValue(Type fieldType, com.google.protobuf.Value prot
480
486
case NUMERIC :
481
487
return new BigDecimal (proto .getStringValue ());
482
488
case STRING :
489
+ case JSON :
483
490
checkType (fieldType , proto , KindCase .STRING_VALUE );
484
491
return proto .getStringValue ();
485
492
case BYTES :
@@ -543,6 +550,7 @@ static Object decodeArrayValue(Type elementType, ListValue listValue) {
543
550
return list ;
544
551
}
545
552
case STRING :
553
+ case JSON :
546
554
return Lists .transform (
547
555
listValue .getValuesList (),
548
556
input -> input .getKindCase () == KindCase .NULL_VALUE ? null : input .getStringValue ());
@@ -654,6 +662,11 @@ protected String getStringInternal(int columnIndex) {
654
662
return (String ) rowData .get (columnIndex );
655
663
}
656
664
665
+ @ Override
666
+ protected String getJsonInternal (int columnIndex ) {
667
+ return (String ) rowData .get (columnIndex );
668
+ }
669
+
657
670
@ Override
658
671
protected ByteArray getBytesInternal (int columnIndex ) {
659
672
return (ByteArray ) rowData .get (columnIndex );
@@ -782,6 +795,12 @@ protected List<String> getStringListInternal(int columnIndex) {
782
795
return Collections .unmodifiableList ((List <String >) rowData .get (columnIndex ));
783
796
}
784
797
798
+ @ Override
799
+ @ SuppressWarnings ("unchecked" ) // We know ARRAY<String> produces a List<String>.
800
+ protected List <String > getJsonListInternal (int columnIndex ) {
801
+ return Collections .unmodifiableList ((List <String >) rowData .get (columnIndex ));
802
+ }
803
+
785
804
@ Override
786
805
@ SuppressWarnings ("unchecked" ) // We know ARRAY<BYTES> produces a List<ByteArray>.
787
806
protected List <ByteArray > getBytesListInternal (int columnIndex ) {
@@ -1308,6 +1327,11 @@ protected String getStringInternal(int columnIndex) {
1308
1327
return currRow ().getStringInternal (columnIndex );
1309
1328
}
1310
1329
1330
+ @ Override
1331
+ protected String getJsonInternal (int columnIndex ) {
1332
+ return currRow ().getJsonInternal (columnIndex );
1333
+ }
1334
+
1311
1335
@ Override
1312
1336
protected ByteArray getBytesInternal (int columnIndex ) {
1313
1337
return currRow ().getBytesInternal (columnIndex );
@@ -1368,6 +1392,11 @@ protected List<String> getStringListInternal(int columnIndex) {
1368
1392
return currRow ().getStringListInternal (columnIndex );
1369
1393
}
1370
1394
1395
+ @ Override
1396
+ protected List <String > getJsonListInternal (int columnIndex ) {
1397
+ return currRow ().getJsonListInternal (columnIndex );
1398
+ }
1399
+
1371
1400
@ Override
1372
1401
protected List <ByteArray > getBytesListInternal (int columnIndex ) {
1373
1402
return currRow ().getBytesListInternal (columnIndex );
0 commit comments