From d3bf97980c1b5bd8062eff3e18156af4a3ab30fa Mon Sep 17 00:00:00 2001 From: wujifei Date: Fri, 29 Jan 2021 10:46:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E5=8C=96=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo/cloud/network/NetworkActivity.java | 69 +++++++++++++++++-- app/src/main/res/layout/activity_network.xml | 15 ++-- 2 files changed, 75 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/mogo/cloud/network/NetworkActivity.java b/app/src/main/java/com/mogo/cloud/network/NetworkActivity.java index 1b11594..28ea228 100644 --- a/app/src/main/java/com/mogo/cloud/network/NetworkActivity.java +++ b/app/src/main/java/com/mogo/cloud/network/NetworkActivity.java @@ -19,6 +19,7 @@ import io.reactivex.disposables.Disposable; import io.reactivex.schedulers.Schedulers; import static com.mogo.cloud.network.NetConstants.GEOFENCE_HOST; +import static com.mogo.cloud.network.NetConstants.REALTIME_LOCATION_HOST; /** * created by wujifei on 2021/1/21 12:26 @@ -66,8 +67,8 @@ public class NetworkActivity extends AppCompatActivity { @Override public void onNext(BaseData value) { - tvResult.setText(new Gson().toJson(value)); - System.out.println(new Gson().toJson(value)); + tvResult.setText(formatJson(new Gson().toJson(value))); + System.out.println(formatJson(new Gson().toJson(value))); } @Override @@ -85,7 +86,7 @@ public class NetworkActivity extends AppCompatActivity { } public void queryHelpSignal(String sn) { - apiService = RetrofitFactory.INSTANCE.getInstance("http://dzt-realtimeLocation.zhidaozhixing.com") + apiService = RetrofitFactory.INSTANCE.getInstance(REALTIME_LOCATION_HOST) .create(ApiService.class); if (apiService != null) { Map map = new HashMap<>(); @@ -101,8 +102,8 @@ public class NetworkActivity extends AppCompatActivity { @Override public void onNext(BaseData value) { - tvResult.setText(new Gson().toJson(value)); - System.out.println(new Gson().toJson(value)); + tvResult.setText(formatJson(new Gson().toJson(value))); + System.out.println(formatJson(new Gson().toJson(value))); } @Override @@ -118,4 +119,62 @@ public class NetworkActivity extends AppCompatActivity { }); } } + + + public static String formatJson(String jsonStr) { + if (null == jsonStr || "".equals(jsonStr)) + return ""; + StringBuilder sb = new StringBuilder(); + char last = '\0'; + char current = '\0'; + int indent = 0; + boolean isInQuotationMarks = false; + for (int i = 0; i < jsonStr.length(); i++) { + last = current; + current = jsonStr.charAt(i); + switch (current) { + case '"': + if (last != '\\') { + isInQuotationMarks = !isInQuotationMarks; + } + sb.append(current); + break; + case '{': + case '[': + sb.append(current); + if (!isInQuotationMarks) { + sb.append('\n'); + indent++; + addIndentBlank(sb, indent); + } + break; + case '}': + case ']': + if (!isInQuotationMarks) { + sb.append('\n'); + indent--; + addIndentBlank(sb, indent); + } + sb.append(current); + break; + case ',': + sb.append(current); + if (last != '\\' && !isInQuotationMarks) { + sb.append('\n'); + addIndentBlank(sb, indent); + } + break; + default: + sb.append(current); + } + } + + return sb.toString(); + } + + private static void addIndentBlank(StringBuilder sb, int indent) { + for (int i = 0; i < indent; i++) { + sb.append('\t'); + } + } } diff --git a/app/src/main/res/layout/activity_network.xml b/app/src/main/res/layout/activity_network.xml index f9d03b9..954a9d2 100644 --- a/app/src/main/res/layout/activity_network.xml +++ b/app/src/main/res/layout/activity_network.xml @@ -11,9 +11,16 @@ android:layout_height="wrap_content" android:text="网络请求" /> - + android:layout_height="match_parent"> + + + + + \ No newline at end of file