Просто проверьте тип данных части message
JSON и, соответственно, используйте ее.
Посмотрите на этот пример.
package test;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
public class jsonDeco {
public static void main(String[] args) throws JSONException {
// TODO Auto-generated method stub
JSONObject a = new JSONObject("{ \"status_code\": 2002, \"sub_status_code\": 2002,"
+ " \"message\": \"Service Invoke Create Step2 Success\"} ");
JSONObject b = new JSONObject("{ \"status_code\": 7000, \"sub_status_code\": 7001,"
+ " \"message\": [ \"Step No: Step 2: Line No: 92 Variable Name: lan-pool-ipv6-mask"
+ " Error Code: 7516 Error Detail: Lan Pool IPV6 network address is invalid Description: \" ]}");
parseAORB(b);
}
public static void parseAORB(JSONObject input) throws JSONException
{
String code = input.getString("status_code");
System.out.println(code);
System.out.println(nameOf(input.get("message")));
if(nameOf(input.get("message")).equals("String"))
{
System.out.println("inside string");
String message = input.getString("message");
System.out.println("Message is : "+message);
}
else if (nameOf(input.get("message")).equals("JSONArray"))
{
JSONArray message = input.getJSONArray("message");
System.out.println("inside jsonarray");
System.out.println("Message is : "+message.getString(0).toString());
}
}
private static String nameOf(Object o) {
return o.getClass().getSimpleName();
}
}
Вы можете передать переменную a
или b
для проверки.
P.S. В комментарии оба примера неверны. В первом из них есть еще одна запятая ,
в конце, а во втором примере вы не закрыли фигурную скобку }
.
Самый простой способ сделать это - связать массив длиной один. Вы можете поместить в него все, что захотите, чтобы определить, что это пустая строка. В вашем методе GridViews RowDataBound проверьте, является ли элемент данных фиктивной строкой (сначала убедитесь, что RowType является DataRow, прежде чем пытаться проверить данные). Если это фиктивная строка, установите для видимости строк значение false. Нижний колонтитул и заголовок теперь должны отображаться без каких-либо данных.
Убедитесь, что для свойства ShowFooter установлено значение true в вашем GridView.
Например,
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostback)
{
myGrid.DataSource = new object[] {null};
myGrid.DataBind();
}
}
protected void myGrid_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (e.Row.DataItem == null)
{
e.Row.Visible = false;
}
}
}