场景:
我正在使用以下代码解码JSON字符串以使用它生成对象。
{"av":{"tid":"1000","sslist":[{"ss":{"ssId":"1","ssName":"Test ss "name one"}},{"ss":{"ssId":"2","ssName":"Test ss name two"}}],"hl":{"lc":0}}}
Run Code Online (Sandbox Code Playgroud)
现在,我有几百元sslist
,所有的失败,因为一个血淋淋"
的ssName
第一ss
要素。
但是,当String在createJsonParser()方法的最开始处进行解析时,会引发此错误。
题 :
我只想忽略容易出错的节点,而继续处理其他数百个正确的节点。还有其他方法吗?
代码:
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.JsonNode;
public class JsonReader {
private void readJsonMethodThree(String jsonString) throws JsonParseException, IOException{
ObjectMapper mapper = new ObjectMapper();
JsonFactory factory = mapper.getJsonFactory();
JsonParser jsonParser = factory.createJsonParser(jsonString);
JsonNode jsonNode = mapper.readTree(jsonParser);
}
}
Run Code Online (Sandbox Code Playgroud)
例外情况:
Exception in thread "main" com.fasterxml.jackson.core.JsonParseException: Unexpected character ('n' (code 110)): was expecting comma to separate OBJECT entries
at …
Run Code Online (Sandbox Code Playgroud) 我知道,当
java.lang.Object
-> java.util.concurrent.CopyOnWriteArrayList<E>
Run Code Online (Sandbox Code Playgroud)
和
java.lang.Object
-> java.util.AbstractCollection<E>
-> java.util.AbstractList<E>
-> java.util.ArrayList<E>
Run Code Online (Sandbox Code Playgroud)
但是我想要的是将的行为添加CopyOnWriteArrayList
到ArrayList
。
例如:
我想做以下事情。但是tstArry是一个ArrayList
。不是CopyOnWriteArrayList
for(TestCls testCls : tstArry)
if(testCls.getVal1().equals("a1"))
tstArry.remove(testCls);
Run Code Online (Sandbox Code Playgroud)
还是这是完成工作的唯一方法?
for(int i = 0; i < tstArry.size(); i++)
if(tstArry.get(i).getVal1().equals("a1"))
tstArry.remove(i--);
Run Code Online (Sandbox Code Playgroud)
tstArry是我没有控件的类中的ArrayList。因此,请把ArrayList的类型更改为另一种是最有效的解决方案。
以下代码在附近发出错误 public void control() {
.
EClipse还提供了一个提示,可以删除@Override注释.我去了docs.oracle,发现如果用@Override 标记的方法无法正确覆盖其中一个超类中的方法,编译器会生成错误.
我不明白"无法正确覆盖"是什么意思?
public class PersistenceFlowController implements controllers.FlowController {
@Override
public void control() {
// Do some works here
}
}
package controllers;
public interface FlowController {
void control();
}
Run Code Online (Sandbox Code Playgroud) 我知道@Test(enabled = false)
会忽略带注释方法的测试.
但为什么我们不能只注释注释要忽略.
我的意思是使用@Test(enabled = false)
评论 @Test
注释的优势是什么?
这是我的桌子.
当我使用NOT IN执行以下查询时,它给了我namal和Ann.
SELECT firstname
FROM info.student_info
WHERE firstname NOT IN (SELECT firstname
FROM info.student_info
WHERE lastname IS NULL)
Run Code Online (Sandbox Code Playgroud)
但是当我使用NOT EXISTS执行以下查询时,它没有给我任何行.
SELECT firstname
FROM info.student_info
WHERE NOT EXISTS (SELECT firstname
FROM info.student_info
WHERE lastname IS NULL)
Run Code Online (Sandbox Code Playgroud)
为什么是这样?我已经研究了NOT IN和NOT EXISTS的一些领域,但未能找到答案.
当我抓住ParseException
(代码1)时,编译器会喊" Unreachable catch block for ParseException. This exception is never thrown from the try statement body
".但当我赶上Exception
(代码2)时,它是一个愚蠢的.为什么是这样?
代码1:
try {
int i = 0;
}catch (ParseException e1) { //Unreachable catch block for ParseException. This exception is never thrown from the try statement body
e1.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
代码2:
try {
int i = 0;
}catch (Exception e2) { // ............. (dumbed???)
e2.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
注意:我在其他地方意外地注意到了这一点.上面只是一个模拟的例子.
我有2个像这样的数组:
var windows_array = [];
var google_array = [];
Run Code Online (Sandbox Code Playgroud)
在这里,我希望通过传递网络到达指定的数组.
function add_friends(network, friend){
(network + '_array').push(friend);
}
function get_friends(network){
var d = $('.div_out');
for(var i=0; i< (network + '_array').Length; i++){
d.append('<div>' + (network + '_array')[i].name + '</div>')
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是如何在jQuery中完成它?
我知道在PHP中它是可能的.
我有两个关于静态块和常量的问题,下面的代码.
我想知道为什么会这样?
代码:
public class TestStaticblock {
static{
try {
// NAME = dummyStringValue() + NAME_APPENDER; // Cannot reference a field before it is defined
// NAME = dummyStringValue() + getNameAppender(); // This is OK
NAME = dummyStringValue();
} catch (Exception e) {
NAME = null; // The final field NAME may already have been assigned
}
}
private static String dummyStringValue() throws Exception{
return "dummy";
}
private static String getNameAppender() throws Exception{
return NAME_APPENDER;
}
private static …
Run Code Online (Sandbox Code Playgroud) 我想做一个简单的实现,根据bigCodeList中包含重复项的不同代码(aCode)做一些操作.下面我提到了两种方法,我想知道的是哪种方法在性能副+内存消耗方面更有效?
方法1:
String tempStr = "";
for(String aCode : bigCodeList){
if(tempStr.indexOf(aCode) == -1) {
// deal With the aCode related work
tempStr += aCode+"-"
}
}
Run Code Online (Sandbox Code Playgroud)
方法2:
HashSet<String> tempHSet = new HashSet<String>();
for(String aCode : bigCodeList){
if(tempHSet.add(aCode)){
// deal With the aCode related work
}
}
Run Code Online (Sandbox Code Playgroud)
注意:aCode是一个像LON一样的三字母代码
我想创建一个没有TimeZone的Date对象(例如:) 2007-06-21
.这可能吗?
当我使用以下方法打印时Thu Jun 21 00:00:00 GMT 2007
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
TimeZone timeZone = TimeZone.getTimeZone("GMT");
timeZone.setDefault(timeZone);
sdf.setTimeZone(timeZone);
Date pickUpDate = sdf.parse("2007-06-21");
System.out.println(pickUpDate);
Run Code Online (Sandbox Code Playgroud) java ×8
annotations ×1
arrays ×1
collections ×1
date ×1
exception ×1
jackson ×1
javascript ×1
jquery ×1
json ×1
memory ×1
performance ×1
postgresql ×1
sql ×1
static ×1
testng ×1
timezone ×1