Skip to content
This repository was archived by the owner on May 26, 2021. It is now read-only.

Commit 383f6bb

Browse files
committed
Sync with underscore-java.
1 parent 94cd9bd commit 383f6bb

File tree

2 files changed

+67
-1
lines changed

2 files changed

+67
-1
lines changed

src/main/java/com/github/underscore/lodash/U.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -2276,7 +2276,7 @@ public Builder set(final String path, final Object value) {
22762276
}
22772277

22782278
public Builder add(final Builder builder) {
2279-
data.putAll(builder.data);
2279+
data.put(String.valueOf(data.size()), builder.build());
22802280
return this;
22812281
}
22822282

@@ -2304,5 +2304,10 @@ public static Builder fromJson(final String json) {
23042304
builder.data.putAll(fromJsonMap(json));
23052305
return builder;
23062306
}
2307+
2308+
@Override
2309+
public String toString() {
2310+
return data.toString();
2311+
}
23072312
}
23082313
}

src/test/java/com/github/underscore/lodash/LodashTest.java

+61
Original file line numberDiff line numberDiff line change
@@ -763,7 +763,28 @@ public void objectBuilder() {
763763
builder.toXml();
764764
U.Builder.fromXml("<a/>");
765765
builder.set("1", "3");
766+
builder.toString();
766767
assertEquals("{1=3}", builder.build().toString());
768+
Map<String, Object> value = U.objectBuilder()
769+
.add("firstName", "John")
770+
.add("lastName", "Smith")
771+
.add("age", 25)
772+
.add("address", U.objectBuilder()
773+
.add("streetAddress", "21 2nd Street")
774+
.add("city", "New York")
775+
.add("state", "NY")
776+
.add("postalCode", "10021"))
777+
.add("phoneNumber", U.objectBuilder()
778+
.add(U.objectBuilder()
779+
.add("type", "home")
780+
.add("number", "212 555-1234"))
781+
.add(U.objectBuilder()
782+
.add("type", "fax")
783+
.add("number", "646 555-4567")))
784+
.build();
785+
assertEquals("{firstName=John, lastName=Smith, age=25, address={streetAddress=21 2nd Street, "
786+
+ "city=New York, state=NY, postalCode=10021}, phoneNumber={0={type=home, number=212 555-1234}, "
787+
+ "1={type=fax, number=646 555-4567}}}", value.toString());
767788
}
768789

769790
@SuppressWarnings("unchecked")
@@ -1021,6 +1042,46 @@ public void stackoverflow4() {
10211042
U.fromXml(xml).toString());
10221043
}
10231044

1045+
@Test
1046+
public void stackoverflow5() {
1047+
// https://stackoverflow.com/questions/59429211/
1048+
// convert-xml-to-json-and-vice-versa-and-also-how-to-identify-rest-endpoint-while
1049+
String xmlData = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\""
1050+
+ " xmlns:urn=\"urn:ahc.com:dms:wsdls:organization\">\n"
1051+
+ " <soapenv:Header/>\n"
1052+
+ " <soapenv:Body>\n"
1053+
+ " <urn:getRoles>\n"
1054+
+ " <getRolesRequest>\n"
1055+
+ " <Type>ABC</Type>\n"
1056+
+ " </getRolesRequest>\n"
1057+
+ " </urn:getRoles>\n"
1058+
+ " </soapenv:Body>\n"
1059+
+ "</soapenv:Envelope>";
1060+
Map<String, Object> jsonData = U.<Map<String, Object>>get(
1061+
U.<Map<String, Object>>fromXmlWithoutNamespaces(xmlData), "Envelope.Body.getRoles");
1062+
assertEquals("{getRolesRequest={Type=ABC}}", jsonData.toString());
1063+
}
1064+
1065+
@Test
1066+
public void stackoverflow6() {
1067+
// https://stackoverflow.com/questions/59585708/getting-null-pointer-while-reading-the-fileds-from-json-to-pojo
1068+
String jsonData = "{\n"
1069+
+ " \"TEST\": {\n"
1070+
+ " \"NAME\": \"PART_TRAN\",\n"
1071+
+ " \"VERSION\": \"9.0\",\n"
1072+
+ " \"ID\": \"----\",\n"
1073+
+ " \"SEGMENT\": {\n"
1074+
+ " \"TYPE\": \"R\",\n"
1075+
+ " \"CLIENT_ID\": \"----\",\n"
1076+
+ " \"UN_NUM\": \"UN\"\n"
1077+
+ " }"
1078+
+ " }"
1079+
+ "}";
1080+
Map<String, Object> jsonObject = U.fromJsonMap(jsonData);
1081+
assertEquals("R", U.<String>get(jsonObject, "TEST.SEGMENT.TYPE"));
1082+
assertEquals("UN", U.<String>get(jsonObject, "TEST.SEGMENT.UN_NUM"));
1083+
}
1084+
10241085
@SuppressWarnings("unchecked")
10251086
@Test
10261087
public void sqlru1() {

0 commit comments

Comments
 (0)