@Override public State transition(StateMachine sm, char[] buff, int i, int count) throws JsonParserException { State state = null; char ch; for (; i < count; i++) { ch = buff[i]; sm.processLocation(ch); if (ch == sm.currentQuoteChar) { ((BValueArray) sm.currentJsonNode).append(new BString(sm.value())); state = ARRAY_ELEMENT_END_STATE; } else if (ch == REV_SOL) { state = STRING_AE_ESC_CHAR_PROCESSING_STATE; } else if (ch == EOF) { throw new JsonParserException("unexpected end of JSON document"); } else { sm.append(ch); state = this; continue; } break; } sm.index = i + 1; return state; }
@Override public void append(BRefType<?> value) { if (datasource.hasNext()) { buildDatasource(); } super.append(value); }
private State finalizeObject() { if (!this.nodesStack.isEmpty()) { BRefType<?> parentNode = this.nodesStack.pop(); if (parentNode.getType().getTag() == TypeTags.JSON_TAG) { ((BMap<String, BValue>) parentNode).put(fieldNames.pop(), currentJsonNode); currentJsonNode = parentNode; return FIELD_END_STATE; } else { ((BValueArray) parentNode).append(currentJsonNode); currentJsonNode = parentNode; return ARRAY_ELEMENT_END_STATE; } } else { return DOC_END_STATE; } }
if (obj instanceof String) { for (Object value : dataArray) { jsonArray.append(new BString((String) value)); jsonArray.append(new BBoolean((boolean) value)); jsonArray.append(new BInteger((int) value)); jsonArray.append(new BInteger((long) value)); jsonArray.append(new BFloat((float) value)); jsonArray.append(new BFloat((double) value)); jsonArray.append(new BFloat(((BigDecimal) value).doubleValue())); } else { jsonArray.append(null);
/** * Add the child JSON nodes in the parent node. * * @param root JSON root object to which child nodes are added * @param rootMap List of child JSON nodes */ private static void processRootNodes(BMap<String, BRefType<?>> root, LinkedHashMap<String, ArrayList<BRefType<?>>> rootMap) { for (Map.Entry<String, ArrayList<BRefType<?>>> entry : rootMap.entrySet()) { String key = entry.getKey(); ArrayList<BRefType<?>> elementList = entry.getValue(); int elementCount = elementList.size(); if (elementCount == 1) { root.put(key, elementList.get(0)); } else { // When there are multiple nodes with the same key they are set into an array BValueArray arrayNode = new BValueArray(new BArrayType(BTypes.typeJSON)); for (BRefType<?> node : elementList) { arrayNode.append(node); } root.put(key, arrayNode); } } }
private BMap<String, BValue> arrayToBValue(Object array) { BValueArray bArray = new BValueArray(new BArrayType(BTypes.typeAny)); int arrayLength = Array.getLength(array); for (int i = 0; i < arrayLength; i++) { bArray.append(toBValue(Array.get(array, i), null)); } BMap<String, BValue> bMap = wrapWithTypeMetadata(JsonSerializerConst.ARRAY_TAG, bArray); bMap.put(JsonSerializerConst.LENGTH_TAG, new BInteger(arrayLength)); Class<?> componentType = array.getClass().getComponentType(); String trimmedName = getTrimmedClassName(componentType); bMap.put(JsonSerializerConst.COMPONENT_TYPE, createBString(trimmedName)); return bMap; }
arrayNode.append(new BString(element.getText()));
BRefType value = refValueArray.getRefValue(i); if (value == null) { json.append(null); json.append(value); break; case TypeTags.MAP_TAG: case TypeTags.RECORD_TYPE_TAG: case TypeTags.OBJECT_TYPE_TAG: json.append(convertMapToJSON((BMap<String, BValue>) value, (BJSONType) BTypes.typeJSON)); break; case TypeTags.ARRAY_TAG: json.append(convertArrayToJSON((BNewArray) value)); break; default:
@Override public BRefType<?> build() { BValueArray values = new BValueArray(new BArrayType(BTypes.typeJSON)); while (this.hasNext()) { values.append(this.next()); } return values; }
private BMap<String, BValue> listToBValue(List list) { BValueArray array = new BValueArray(new BArrayType(BTypes.typeAny)); for (Object item : list) { array.append(toBValue(item, null)); } BMap<String, BValue> bMap = wrapWithTypeMetadata(JsonSerializerConst.LIST_TAG, array); bMap.put(JsonSerializerConst.LENGTH_TAG, new BInteger(list.size())); return bMap; }
@Override public BPacket toBValue(HashSet set, BValueSerializer serializer) { BValueArray array = new BValueArray(new BArrayType(BTypes.typeAny)); for (Object item : set) { array.append((BRefType) serializer.toBValue(item, null)); } return BPacket .from(typeName(), array) .put(JsonSerializerConst.LENGTH_TAG, new BInteger(set.size())); }
/** * Convert a given list of XML text elements into a JSON array. * * @param childArray List of XML text elements * @return ArrayNode Json array node corresponding to the given text elements */ private static BValueArray processTextArray(ArrayList<OMText> childArray) { //Create array based on xml text elements BValueArray arrayNode = new BValueArray(new BArrayType(BTypes.typeJSON)); for (OMText element : childArray) { arrayNode.append(new BString(element.getText())); } return arrayNode; }
if (textArrayNode != null) { textArrayNode.append(jsonNode);
@Override public BPacket toBValue(ArrayList list, BValueSerializer serializer) { BValueArray array = new BValueArray(new BArrayType(BTypes.typeAny)); for (Object item : list) { array.append((BRefType) serializer.toBValue(item, null)); } return BPacket .from(typeName(), array) .put(JsonSerializerConst.LENGTH_TAG, new BInteger(list.size())); }
/** * Convert {@link BValueArray} to JSON. * * @param intArray {@link BValueArray} to be converted to JSON * @return JSON representation of the provided intArray */ private static BValueArray convertIntArrayToJSON(BValueArray intArray) { BValueArray json = new BValueArray(new BArrayType(BTypes.typeJSON)); for (int i = 0; i < intArray.size(); i++) { long value = intArray.getInt(i); json.append(new BInteger(value)); } return json; }
/** * Convert {@link BValueArray} to JSON. * * @param booleanArray {@link BValueArray} to be converted to JSON * @return JSON representation of the provided booleanArray */ private static BValueArray convertBooleanArrayToJSON(BValueArray booleanArray) { BValueArray json = new BValueArray(new BArrayType(BTypes.typeJSON)); for (int i = 0; i < booleanArray.size(); i++) { int value = booleanArray.getBoolean(i); json.append(new BBoolean(value == 1)); } return json; }
/** * Convert {@link BDecimalArray} to JSON. * * @param decimalArray {@link BDecimalArray} to be converted to JSON * @return JSON representation of the provided decimalArray */ private static BValueArray convertDecimalArrayToJSON(BDecimalArray decimalArray) { BValueArray json = new BValueArray(new BArrayType(BTypes.typeJSON)); for (int i = 0; i < decimalArray.size(); i++) { BigDecimal value = decimalArray.get(i); json.append(new BDecimal(value)); } return json; }
/** * Convert {@link BValueArray} to JSON. * * @param floatArray {@link BValueArray} to be converted to JSON * @return JSON representation of the provided floatArray */ private static BValueArray convertFloatArrayToJSON(BValueArray floatArray) { BValueArray json = new BValueArray(new BArrayType(BTypes.typeJSON)); for (int i = 0; i < floatArray.size(); i++) { double value = floatArray.getFloat(i); json.append(new BFloat(value)); } return json; }
/** * Convert {@link BValueArray} to JSON. * * @param stringArray {@link BValueArray} to be converted to JSON * @return JSON representation of the provided stringArray */ private static BValueArray convertStringArrayToJSON(BValueArray stringArray) { BValueArray json = new BValueArray(new BArrayType(BTypes.typeJSON)); for (int i = 0; i < stringArray.size(); i++) { String value = stringArray.getString(i); json.append(new BString(value)); } return json; }
array = new BValueArray(targetArrayType); for (int i = 0; i < jsonArray.size(); i++) { array.append(convertJSON(jsonArray.getRefValue(i), targetElementType));